如何在 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 与多个条件一起使用

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注