我有一个大的data.table,在其大约200k行和200列中分散了许多缺失值.我想尽可能有效地将这些NA值重新编码为零.
我看到两个选项:
1:转换为data.frame,并使用类似这样的东西
2:某种很酷的data.table子设置命令
我会对类型1的相当有效的解决方案感到满意.转换为data.frame然后返回data.table不会花费太长时间.
a <- data.frame(id = 1:3, v1 = c('a', NA, NA), v2 = c(NA, 'b', 'c'))
b <- data.frame(id = 1:3, v1 = c(NA, 'B', 'C'), v2 = c("A", NA, NA))
> a
id v1 v2
1 1 a <NA>
2 2 <NA> b
3 3 <NA> c
> b
id v1 v2
1 1 <NA> A
2 2 B <NA>
3 3 C <NA>
Run Code Online (Sandbox Code Playgroud)
注意:两个表中都没有定义v1或v2的id; 每个id值在每列中只有一个唯一的非NA值
ab <- merge(a, b, by = "id")
Run Code Online (Sandbox Code Playgroud)
v1和v2 …