我有一个大的data.table,在其大约200k行和200列中分散了许多缺失值.我想尽可能有效地将这些NA值重新编码为零.
我看到两个选项:
1:转换为data.frame,并使用类似这样的东西
2:某种很酷的data.table子设置命令
我会对类型1的相当有效的解决方案感到满意.转换为data.frame然后返回data.table不会花费太长时间.
我有一个大数据表(来自包data.table)有超过60列(前三个对应于因子,剩下的响应变量,在这种情况下是不同的物种)和几行对应于不同的处理水平和物种丰富.一个非常小的版本看起来像这样:
library(data.table)
TEST <- data.table(Time=c("0","0","0","7","7","7","12"),
Zone=c("1","1","0","1","0","0","1"),
quadrat=c(1,2,3,1,2,3,1),
Sp1=c(0,4,29,9,1,2,10),
Sp2=c(20,17,11,15,32,15,10),
Sp3=c(1,0,1,1,1,1,0))
setkey(TEST,Time)
TEST
# Time Zone quadrat Sp1 Sp2 Sp3
# 1: 0 1 1 0 20 1
# 2: 0 1 2 4 17 0
# 3: 0 0 3 29 11 1
# 4: 12 1 1 10 10 0
# 5: 7 1 1 9 15 1
# 6: 7 0 2 1 32 1
# 7: 7 0 3 2 15 1
Run Code Online (Sandbox Code Playgroud)
我首先想要计算每个Zone x quadrat组合的每个物种的平均丰度,这很好: …
我在R中的data.table中有几列(字面意思)命名为A1,A2,A3,... A50.不幸的是,我表中的列不是按字母顺序排列的.
我想创建一个名为sumA的新列,它将包含A1 + A2 + ... + A50.
这样做的简单(而不是乏味)方式是什么?