循环后的空数字向量

时间:2016-09-28 18:17:38

标签: r

我在列表中有300多个表的列表,我正在尝试计算表中没有行的次数。

所以我正在运行的循环是:

> while (i < 333) {
  b <- b + (nrow(allInfo[[i]])==0)
  i <- i + 1
 }

我已将i设置为1并尝试将b设置为0和b <- vector("numeric", 1L)并尝试将其设置为“整数”。在循环结束时,b最终得到的值是“数字(空)”,我无法弄清楚这一点。

我可以帮忙解决一下这种情况的原因吗?

2 个答案:

答案 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的答案是最好的。