【发布时间】:2015-05-20 01:20:02
【问题描述】:
我想根据其他列中的值在一个函数中向 data.table 添加多个列,例如
d.f <- data.frame(a=c(1,2,3),b=c(4,5,1))
d.t <- data.table (d.f)
g <- function(x,y){
if (y>x)
return (list(1,2))
else
return (list(2,1))
}
d.t[,c('x','y'):=g(a,b)]
但是这个错误出来了,使用 ifelse 似乎也不起作用。
【问题讨论】:
-
或许
d.t[, c('x', 'y') := g(a,b), by=1:nrow(d.t)][] -
看看你的函数
g(d.t$a, d.t$b)的输出 -
akrun,这行得通,如果你把它作为评论添加,我会标记它是正确的
-
eddi,它会发出警告,但如果我使用 ifelse,它会默默地给出错误的结果
标签: r data.table