[英]Programmatically change the values in the column of a data.table
我有一个 data.table 列 A、B 和 C
一个 | 乙| C
1 | 1 | 2
2 | 1 | 2
2 | 3 | 1
我想以编程方式将每列的值更改为“True”(如果行值 == 2)或“False”。
我知道dt[, A:= fifelse(A == 2, "True", "False"]
有效,但是如何将列作为变量传递?像dt[, cols:= fifelse(cols:= 2, "True", "False"]
,其中 cols = "A"
最好将其保留为 boolean TRUE/FALSE
而不是字符串“True”、“False”
dt[, A := A == 2]
如果我们需要传递一个变量并且它仅用于单个列,则可以使用get
dt[, (cols) := get(cols) == 2]
如果有多于一列,请在.SDcols
中指定,遍历.SD
,转换为逻辑并将 ( :=
) 分配回 object 的字符串
dt[, (cols) := lapply(.SD, `==`, 2), .SDcols = cols]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.