我在列表中有300多个表的列表,我正在尝试计算表中没有行的次数。
所以我正在运行的循环是:
> while (i < 333) {
b <- b + (nrow(allInfo[[i]])==0)
i <- i + 1
}
我已将i设置为1并尝试将b设置为0和b <- vector("numeric", 1L)
并尝试将其设置为“整数”。在循环结束时,b最终得到的值是“数字(空)”,我无法弄清楚这一点。
我可以帮忙解决一下这种情况的原因吗?
答案 0 :(得分:7)
看起来你可能想要像
这样简单的东西sum(sapply(allInfo, nrow) == 0)
这将获取列表中每个元素的行数,并以原子向量形式返回。然后我们可以确定等于零的数量并将得到的逻辑向量求和(因为TRUE
的整数表示是1
)。
答案 1 :(得分:0)
这样做
while (i < 333) {
b <- b + (nrow(as.data.frame(allInfo[[i]]))==0)
i <- i + 1
}
Rich的答案是最好的。