如何使用 dplyr 按名称选择数据框行
您可以使用以下语法通过 dplyr 按名称选择数据框中的行:
library (dplyr) #select rows by name df %>% filter(row. names (df) %in% c(' name1 ', ' name2 ', ' name3 '))
以下示例展示了如何在实践中使用此语法。
示例:使用 dplyr 按名称选择行
假设我们在 R 中有以下数据框:
#create data frame
df <- data. frame (points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#set row names
row. names (df) <- c('Mavs', 'Hawks', 'Cavs', 'Lakers', 'Heat')
#view data frame
df
points assists rebounds
Mavs 99 33 30
Hawks 90 28 28
Cavs 86 31 24
Lakers 88 39 24
Heat 95 34 28
我们可以使用以下代码来选择行名称等于 Hawks、Cavs 或 Heat 的行:
library (dplyr)
#select specific rows by name
df %>%
filter(row. names (df) %in% c(' Hawks ', ' Cavs ', ' Heat '))
points assists rebounds
Hawks 90 28 28
Cavs 86 31 24
Heat 95 34 28
请注意,dplyr 仅返回名称位于我们提供给filter()函数的向量中的行。
另请注意,您可以使用感叹号 ( ! ) 来选择名称不在向量中的所有行:
library (dplyr)
#select rows that do not have Hawks, Cavs, or Heat in the row name
df %>%
filter(!(row. names (df) %in% c(' Hawks ', ' Cavs ', ' Heat ')))
points assists rebounds
Mavs 99 33 30
Lakers 88 39 24
请注意,dplyr 仅返回名称不在我们提供给filter()函数的向量中的行。
其他资源
以下教程解释了如何在 R 中执行其他常见任务:
如何使用dplyr过滤唯一值
如何使用 dplyr 按多个条件进行过滤
如何计算R中列中出现的次数