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

use*_*694 14 r subset dataframe rowname

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

        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
Run Code Online (Sandbox Code Playgroud)

预期产量:

        attr1 attr2 attr3 attr4
  stu2     -1     1    -1     1
  stu3      1    -1     0    -1
  stu5     -1     1     0     1
  stu9     -1    -1     1    -1
Run Code Online (Sandbox Code Playgroud)

maj*_*maj 32

假设您有一个调用的数据框students,您可以使用括号语法选择单个行或列,如下所示:

  • students[1,2] 将选择第1行和第2列,此处的结果将是单个单元格.
  • students[1,]将选择第1行的全部,students[,2]将选择第2列的全部.

如果您想选择多个行或列,请使用值列表,如下所示:

  • students[c(1,3,4),] 会选择第1,3和4行,
  • students[c("stu1", "stu2"),]会选择名为stu1和的行stu2.

希望我能提供帮助.

  • 如果要提取的行和列是连续的,则也可以使用学生[<staringRowNo.>:<endRowNo.>,<startColnNo.>:<endColNo.>].例如; 学生[11:20,2:10]选择第11到第20行和第2到第10列.但是,如果必须指定行名或列名,那么学生[c("rowname1","rowname2",... ),c("colname1","colname2"..]可以使用. (2认同)

Fer*_*aft 7

你也可以使用这个:

DF[paste0("stu",c(2,3,5,9)), ]
Run Code Online (Sandbox Code Playgroud)