如何在 r 中选择包含特定字符串的列
您可以使用 R 中dplyr包中的以下函数来选择包含特定字符串的列:
方法 1:选择包含特定字符串的列
df %>%
select(matches(" string1 "))
方法 2:选择包含多个字符串之一的列
df %>%
select(matches(" string1|string2|string3 "))
以下示例展示了如何在 R 中使用以下数据框来实际使用这些方法:
#create data frame df <- data. frame (mavs=c(12, 10, 14, 19, 22, 25, 29), cavs=c(22, 41, 14, 15, 15, 19, 22), hornets=c(8, 8, 12, 14, 15, 13, 12), spurs=c(10, 12, 12, 16, 22, 28, 30), nets=c(9, 7, 10, 22, 28, 23, 25)) #view data frame df mavs cavs hornets spurs nets 1 12 22 8 10 9 2 10 41 8 12 7 3 14 14 12 12 10 4 19 15 14 16 22 5 22 15 15 22 28 6 25 19 13 28 23 7 29 22 12 30 25
示例 1:选择包含特定字符串的列
以下代码演示如何使用matches()函数仅选择名称中包含字符串“avs”的列:
library (dplyr)
#select all columns that contain "avs" in the name
df %>%
select(matches(" avs "))
mavs cavs
1 12 22
2 10 41
3 14 14
4 19 15
5 22 15
6 25 19
7 29 22
仅返回名称中带有“avs”的列。
在这种情况下,“mavs”和“cavs”是唯一返回的列。
示例 2:选择包含多个字符串之一的列
以下代码演示如何使用matches()函数仅选择名称中包含“avs”或“ets”的列:
library (dplyr)
#select all columns that contain "avs" or "ets" in the name
df %>%
select(matches(" avs|ets "))
mavs cavs hornets nets
1 12 22 8 9
2 10 41 8 7
3 14 14 12 10
4 19 15 14 22
5 22 15 15 28
6 25 19 13 23
7 29 22 12 25
仅返回名称中带有“avs”或“ets”的列。
请注意,竖线 ( | ) 是 R 中的“ OR ”运算符。
您可以随意链接任意数量的“OR”运算符,以选择包含许多不同字符串之一的列。
其他资源
以下教程解释了如何使用 dplyr 执行其他常见任务:
如何使用 dplyr 按名称选择列
如何使用 dplyr 按索引选择列
如何在 dplyr 中将 select_if 与多个条件一起使用