【发布时间】:2020-01-17 14:28:21
【问题描述】:
我正在尝试遍历 R 中 data.table 包中的列。当我对数据表进行子集化时,我在尝试让 for 循环准确输入列时遇到了麻烦。
我的任务目标是在满足“==1”的列条件时获取数据表每个子集的行数。
这是我的代码:
data <- data.table(va=c(1,0,1), vb=c(1,0,0), vc=c(1,1,1))
names <- c("va", "vc")
for (col in names) {
print(nrow(data[col == 1,]))
print(col)
}
这是我得到的输出
[1] 0
[1] "va"
[1] 0
[1] "vc"
我有什么遗漏或更好的方法吗?
【问题讨论】:
-
您正在对行进行子集化。也许试试
print(nrow(data[, col == 1])) -
NULL [1] "va" NULL [1] "vc"该代码的输出
标签: r datatable data.table