簡體   English   中英

R:按因子細分數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM