我需要修改 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]
最佳答案
首先 - 你不需要,也不应该(作为一个好的编程问题)使用 data.table
里面的名字[.data.table
.
其次,您应该尽可能避免使用列号 - 这是 future 头痛的根源,而应该旨在使用列名。
最后,在data.table
中更改列的方法的就是使用 :=
操作符就地修改(见 ?':='
)。
结合以上所有内容,这是您应该做的:
test.dt[a < b, `:=`(a = 10 * a, b = 10 * b)]
关于r - 子集和替换 data.table 中的行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23746097/