gpt4 book ai didi

r - 对列中的每个单元格应用函数并将结果添加到新列

转载 作者:行者123 更新时间:2023-12-04 12:09:43 26 4
gpt4 key购买 nike

我有一个 data.table,如下所示。我想要的是对 C 列中的每个元素应用一个函数。该函数将接受一个向量(因为 Col C 包含向量元素)并返回另一个向量。应将此结果向量添加到新列中。

     A   B         C        
1: 16 151 c(2579, 2659, 2752)
2: 16 152 c(2580, 2660, 2753)
3: 16 153 c(2581, 2661, 2754)
4: 16 154 c(2582, 2662, 2755)
5: 16 155 c(2583, 2663, 2756)
6: 16 156 c(2584, 2664, 2757)

例如,让我们考虑一个函数“isOdd”,它接受一个向量并返回一个逻辑向量。应用此函数后的输出表应如下所示
     A   B           C            isOdd
1: 16 151 c(2579, 2659, 2752) c(T,T,F)
2: 16 152 c(2580, 2660, 2753) c(F,F,T)
3: 16 153 c(2581, 2661, 2754) c(T,T,F)
4: 16 154 c(2582, 2662, 2755) c(F,F,T)
5: 16 155 c(2583, 2663, 2756) c(T,T,F)
6: 16 156 c(2584, 2664, 2757) c(F,F,T)

我如何实现这一目标?

最佳答案

使用 R 的应用函数,我们可以轻松实现您的目标。假设 d 是您正在使用的 data.table。基本上 lapply 将列“C”的每一行传递给匿名函数,然后匿名函数进一步将传入行的每个元素传递给函数 isOdd。

isOdd <- function(x) {
if (x %% 2 == 0) return("F")
else return("T")
}

d$isOdd <- lapply(d$C, function(x) sapply(x, isOdd))

关于r - 对列中的每个单元格应用函数并将结果添加到新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16354524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com