你可以使用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 "运算符连在一起,以选择包含几个不同字符串之一的列。