如何从数据框中选择具有特定行名称的某些行?

时间:2013-09-21 13:30:40

标签: r dataframe subset rowname

我有一个包含多行的数据框。我想从此数据框中选择具有特定rownames的某些行(例如stu2,stu3,stu5,stu9)。输入示例数据帧如下:

        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

3 个答案:

答案 0 :(得分:27)

假设您有一个名为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的行。

希望我能提供帮助。

答案 1 :(得分:3)

您也可以使用:

DF[paste0("stu",c(2,3,5,9)), ]

答案 2 :(得分:1)

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