首页 > 解决方案 > 使用 data.table 根据另一列中的因子级别将 NA 替换为一列中的新因子级别

问题描述

DATA = data.table(col_1 = factor(c("A", "B", "C", "C", "B", "A", "C")),
                  col_2 = factor(c("stuff", NA, NA, "stuff", NA, "different_stuff", NA)))

我有一个大数据集,我想用一个新的因子级别替换对应于from的NAsfrom ,例如。级别的观察不止有,我不想替换属于其他级别的观察,例如.col2Ccol1yet_another_stuffNAsCNAsB

上传此数据集后,这些列已经属于类因子。

data.table由于数据集的大小,我非常希望使用包来这样做。

标签: rdata.table

解决方案


我们可以指定逻辑条件i并在 'col_2' 中分配与 'yet_another_stuff' 条件相对应的值

DATA[is.na(col_2) & col_1 == "C", col_2 := "yet_another_stuff"]

推荐阅读