2013-09-21 29 views
7

我有一個包含多行的數據框。我想從這個數據框中選擇一些特定的rownames行(如stu2,stu3,stu5,stu9)。這個數據幀如下:如何從R中的數據框中選擇具有特定行名的某些行

 attr1 attr2 attr3 attr4 
    stu1  0  0  1  0 
    stu2  -1  1 -1  1 
    stu3  1 -1  0 -1 
    stu4  1 -1  1 -1 
    stu5  -1  1  0  1 
    stu6  1 -1  1  0 
    stu7  -1 -1 -1  1 
    stu8  1 -1  0 -1 
    stu9  -1 -1  1 -1 
    stu10 -1  1  0  1 

結果如下:

 attr1 attr2 attr3 attr4 
    stu2  -1  1 -1  1 
    stu3  1 -1  0 -1 
    stu5  -1  1  0  1 
    stu9  -1 -1  1 -1 

如何解決在R'謝謝。

+8

在我看來這個問題是一個有效的。用戶已經給出了預期的結果。是的,他似乎是對R的最小理解的新手,但我相信這不會對他產生影響。畢竟,我們在一些地區都是小菜鳥。 – Nick

回答

22

假定有稱爲students的數據幀,則可以選擇使用括號語法單獨行或列,例如:

  • students[1,2]將選擇第1行和第2欄,這裏的結果將是一個單細胞。
  • students[1,]會選擇所有的行1,students[,2]會選擇所有列2.

,如果你想選擇多行或列,使用值的列表,像這樣:

  • students[c(1,3,4),]將選擇的行1,3和4,
  • students[c("stu1", "stu2"),]將選擇名爲stu1stu2行。

希望我能幫上忙。

+2

如果要提取的行和列是連續的,則也可以使用學生[]。例如;學生[11:20,2:10]選擇第11到20行和第2到第10列。但是,如果必須指定行名或列名,則學生[c(「rowname1」,「rowname2」,... ),可以使用c(「colname1」,「colname2」..]。 –

1
df <- data.frame(x=rnorm(10), y=rnorm(10)) 
rownames(df) <- letters[1:10] 
df[c('a','b'),] 
3

您也可以使用此:

DF[paste0("stu",c(2,3,5,9)), ] 
相關問題