繁体   English   中英

以编程方式更改 data.table 列中的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM