如何从数据框中选择一些具有特定行名的行? [关闭]

Posted

技术标签:

【中文标题】如何从数据框中选择一些具有特定行名的行? [关闭]【英文标题】:How to select some rows with specific rownames from a dataframe? [closed] 【发布时间】:2013-09-26 19:27:42 【问题描述】:

我有一个包含多行的数据框。我想从此数据框中选择一些具有特定行名的行(例如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

【问题讨论】:

在我看来,这个问题是有效的。用户已经给出了预期的结果。是的,他似乎是一个对 R 了解最少的新手,但我相信这不应该对他不利。毕竟,我们在某些领域都是菜鸟。 【参考方案1】:
df <- data.frame(x=rnorm(10), y=rnorm(10))
rownames(df) <-  letters[1:10]
df[c('a','b'),]

【讨论】:

【参考方案2】:

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

希望我能帮上忙。

【讨论】:

如果要提取的行和列是连续的,那么students[:, :] 也可以。例如; student[11:20, 2:10] 选择第 11 到 20 行和第 2 到 10 列。但是,如果必须指定行名或列名,则 students[c("rowname1", "rowname2", ... ), c("colname1", "colname2"..] 可以使用。【参考方案3】:

你也可以这样用:

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

【讨论】:

以上是关于如何从数据框中选择一些具有特定行名的行? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

基于R中的行名合并数据框

根据来自不同数据帧的行名将列从另一个数据帧复制到

将列中的值转换为现有数据框中的行名

获取具有两个变量和多个行名的 p 值

如何从数据框中检索行名和列名?

Pandas:如何根据特定列上特定值的条件选择数据框中的行[重复]