我有一组表,其中的数据会发生变化。如果传递条件,我需要删除一些特定的行,但在某些情况下,没有要删除的行。而不是让整个数据框回来,我得到一个空的。这是一个简化的例子:
> data <- c(1,2,3,4,5,6,7)
> a <- data.frame(data)
> b <- a[-(a$data==6),]
> b
[1] 2 3 4 5 6 7
> b <- a[-(a$data==8),]
> b
numeric(0)
我应该如何删除这些行,所以这不会发生?
答案 0 :(得分:1)
应该是这样的:
a[!(a$data==8),]
您可能还想使用drop=FALSE
来确保结果为data.frame
:
> a[!(a$data==6),]
[1] 1 2 3 4 5 7
> a[!(a$data==6),,drop=FALSE]
data
1 1
2 2
3 3
4 4
5 5
7 7