r:方括号的子集不起作用

时间:2017-06-06 14:25:18

标签: r subset

我制作了名为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相同。

2 个答案:

答案 0 :(得分:3)

您在引用data.frame x的列时出错。

"a">2表示字符a大于2,而不是a data.frame的变量x。您需要添加x$ax["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, ]