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

R 子集并替换data.table中的行和列,r,data.table,R,Data.table,我需要修改data.table中特定行的某些列。我不断得到一个错误,“未使用的参数(with=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[tes

我需要修改data.table中特定行的某些列。我不断得到一个错误,“未使用的参数(with=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]

test.df首先-您不需要,也不应该(作为一个好的编程问题)在
[.data.table
中使用
data.table
名称

其次,您应该尽可能避免使用列编号——这是未来令人头痛的问题,应该改为使用列名

最后,更改
data.table
中的列的方法是使用
:=
操作符就地修改(请参见
?':='

结合以上所有内容,您应该这样做:

test.dt[a < b, `:=`(a = 10 * a, b = 10 * b)]
test.dt[a