我制作了名为x:
的数据框a b
1 2
3 NA
3 32
21 7
12 8
当我跑步时
y <- x["a">2,]
返回的对象y与x相同。如果我跑
y <- x["a" == 1,]
y是一个空框架。
我确保x数据框的名称没有空格(我自己用名字()命名)以及a和数字。
PS:如果我尝试
y <- x["a">2]
y也返回与x相同。
答案 0 :(得分:3)
您在引用data.frame
x
的列时出错。
"a">2
表示字符a
大于2,而不是a
data.frame
的变量x
。您需要添加x$a
或x["a"]
来引用您的data.frame
列。
尝试
y <- x[x$a >2 ,]
或
y <- x[x["a"] >2 ,]
甚至更清楚
ix <- x["a"] > 2
y <- x[ix,]
答案 1 :(得分:0)
一个简单的替代方案是使用data.table
library(data.table)
setDT(x)
y <- x[ a > 2, ]
y <- x[ a == 1, ]