【发布时间】:2015-03-01 20:03:24
【问题描述】:
这是在 R 中真正让我烦恼的事情之一。考虑以下示例:
a=data.frame(x=c(1,2),y=c(3,4))
i=which(a$x==0)
此时,i 为“integer(0)”,length(i) 为 0。现在如果我这样做:
b=a[-i,]
因为我是通过空索引删除的,所以我希望 b 将所有数据都放在 a 中。但是 b 是一个空数据框。我必须这样做:
if (length(i)>0) b=a[-i,] else b=a
这同样适用于矩阵。有没有一种方法可以在没有我的 if-else 的情况下正确处理空索引?
【问题讨论】:
-
也许您应该不首先使用 for 循环来执行此操作。你想达到什么目的?
-
你要的是空集(并得到它)。
-
BondedDust,我在哪里要空集?我认为它试图通过一组空的索引值删除行,这应该返回我完整的数据集。
标签: r indexing syntax selection