2017-06-06 63 views
0

我製成名爲x數據幀:R:子集用方括號不工作

a b 
1 2 
3 NA 
3 32 
21 7 
12 8 

當運行

y <- x["a">2,] 

目的ý返回是相同於x。如果我跑

y <- x["a" == 1,] 

y是一個空的框架。

我確信x數據框的名稱沒有空格(我用names()命名它們),還有a和數字。

PS:如果我嘗試

y <- x["a">2] 

Y也返回相同的X。

回答

3

您在引用data.framex的列時發生錯誤。

"a">2表示字符a大於2,不可變adata.framex。您需要添加x$ax["a"]以引用您的data.frame列。

嘗試

y <- x[x$a >2 ,]

y <- x[x["a"] >2 ,]

甚至更​​加清晰

ix <- x["a"] > 2 

y <- x[ix,] 
+0

非常感謝你 –

0

一個簡單的替代將使用data.table

librarry(data.table) 

setDT(x) 

y <- x[ a > 2, ] 

y <- x[ a == 1, ]