[英]R:Subsetting data frame by factor
假設我們有以下數據框
foo
k h=1 h=2 h=3
1 3 3 6 9
2 2 2 5 8
3 1 1 4 7
與
str(check)
'data.frame': 3 obs. of 4 variables:
$ k : Factor w/ 3 levels "3","2","1": 1 2 3
$ h=1: int 3 2 1
$ h=2: int 6 5 4
$ h=3: int 9 8 7
如何基於k
子集划分數據幀? 例如,僅獲取k = 3的行或所有k <3的行。 我嘗試使用subet(foo, k=3)
但是它不起作用。 我也嘗試將列k轉換為數值,但是隨后我的data.frame失去了順序。 數據相對於k降序很重要(因此3、2、1)
方括號表示法應該能夠對所有因素進行子集化,而不會出現任何問題:
# Returns all rows of foo where k == '3'
foo[foo$k == '3',]
您之前所做的兩個可能的問題:
1) subset(foo, k=3)
應該是subset(foo, k==3)
,不要將相等運算符( ==
)與賦值運算符( =
)混淆
2)由於您正在與因子的實際水平進行比較,因此應檢查字符'3'
而不是數字3
相等性。 您可以從str()
的輸出中看到,k的級別是帶引號的"3","2","1"
,而其他變量的整數顯示時沒有引號3 2 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.