子集并替换data.table中的行和列

Ala*_*lan 4 r data.table

我需要修改data.table的特定行的某些列.我不断收到错误,"未使用的参数(带= F)".有谁知道如何快速处理这个?下面是使用data.frames和data.table的示例.

谢谢.

     test.df <- data.frame(a=rnorm(100, 0, 1), b=rnorm(100, 0, 1), c=rnorm(100,0,1))
     test.dt <- as.data.table(test.df)

     test.df[test.df$a<test.df$b,c(1,2)] <- 10* test.df[test.df$a<test.df$b,c(1,2)]

     test.dt[test.dt$a<test.dt$b, c(1,2), with=F] <- 10* test.dt[,c(1,2),with=F][test.dt$a<test.dt$b, c(1,2), with=F]
Run Code Online (Sandbox Code Playgroud)

edd*_*ddi 8

首先 - 你不需要,也不应该(作为一个好的编程问题)使用data.table里面的名字[.data.table.

其次,你应该尽可能避免使用列号 - 这是未来头痛的根源,而应该使用列名.

最后,更改列中data.table的列的方法是使用:=运算符进行就地修改(请参阅参考资料?':=').

结合以上所有,这是你应该做的:

test.dt[a < b, `:=`(a = 10 * a, b = 10 * b)]
Run Code Online (Sandbox Code Playgroud)