【发布时间】:2017-03-15 23:49:42
【问题描述】:
我有一个这样的 data.table:
dt <- data.table(asset=c("x1","x2","x3","x4","x5"),
min_s1=c(.1,NA,NA,.1,NA),
min_s2=c(NA,.5,.5,NA,NA),
min_s3=c(.15,NA,NA,NA,.15))
我可以手动对 NA 值进行子集化,如下所示,这给了我想要的输出:
empty1 <- dt[is.na(min_s1)]
empty2 <- dt[is.na(min_s2)]
empty3 <- dt[is.na(min_s3)]
但是,我真正需要做的是使用列名动态地设置子集,并在循环中命名包含 i 变量的结果。循环很重要,因为它最终将用于并行计算脚本。我想要这样的东西(它不起作用;只是显示我正在寻找的东西):
foreach (i in 1:3) %do% {
empty(i) <- dt[is.na(min_s(i))]
}
我尝试使用以下及其许多变体均无济于事:
paste0("empty",i) <- dt[is.na(paste0("min_s",i))]
有什么想法可以做到这一点吗? 我使用的是 Windows 7 电脑。 谢谢。
【问题讨论】:
标签: r parallel-processing data.table