紧跟this问题,如何使用“:=”符号将值分配给数据表中的多个列?
例如:
x <- data.table(a = 1:3, b = 1:6, c = 11:16)
我可以用两行代码得到我想要的东西:
x[a>2, b:=NA]
x[a>2, c:=NA]
但希望能够做到这一点,就像这样:
x[a>2, .(b:=NA, c:=NA)]
但是不幸的是,这不起作用。还有另一种方法吗?
答案 0 :(得分:2)
我们可以将:=
与#p
x[a >2, `:=`(b = NA, c = NA)]
如果有很多列,则另一个选择是set
for(nm in names(x)[-1]) set(x, i=which(x[["a"]]>2), j=nm, value = NA)