A:检查字符串是否包含多个子字符串


您可以在 R 中使用以下方法来检查字符串是否包含多个子字符串:

方法一:检查字符串是否包含多个子字符串之一

 df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , any )

此特定语法检查team列中的每个字符串是否包含名为find_strings 的字符串向量中指定的字符串之一

方法二:检查字符串是否包含多个子字符串

 df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , all )

此特定语法检查team列中的每个字符串是否包含名为find_strings 的字符串向量中指定的所有字符串。

以下示例展示了如何在 R 中使用以下数据框实际使用每种方法:

 #create data frame
df = data. frame (team=c('Good East Team', 'Good West Team', 'Great East Team',
                       'Great West Team', 'Bad East Team', 'Bad West Team'),
                points=c(93, 99, 105, 110, 85, 88))

#view data frame
df

             team points
1 Good East Team 93
2 Good West Team 99
3 Great East Team 105
4 Great West Team 110
5 Bad East Team 85
6 Bad West Team 88

示例1:检查字符串是否包含多个子字符串之一

我们可以使用以下语法来检查team列中的每个字符串是否包含“Good”“Is”子字符串:

 #define substrings to look for
find_strings <- c(' Good ', ' East ')

#check if each string in team column contains either substring
df$good_or_east <- apply(sapply(find_strings, grepl, df$team), 1 , any )

#view updated data frame
df

             team points good_or_east
1 Good East Team 93 TRUE
2 Good West Team 99 TRUE
3 Great East Team 105 TRUE
4 Great West Team 110 FALSE
5 Bad East Team 85 TRUE
6 Bad West Team 88 FALSE

新的good_or_east列返回以下值:

  • 如果团队包含“Good”或“Is” ,则为 TRUE
  • 如果团队既不包含“Good”也不包含“East”,则为FALSE

示例 2 检查字符串是否包含多个子字符串

我们可以使用以下语法来检查team列中的每个字符串是否包含子字符串“Good”“Is”:

 #define substrings to look for
find_strings <- c(' Good ', ' East ')

#check if each string in team column contains either substring
df$good_and_east <- apply(sapply(find_strings, grepl, df$team), 1 , all )

#view updated data frame
df

             team points good_and_east
1 Good East Team 93 TRUE
2 Good West Team 99 FALSE
3 Great East Team 105 FALSE
4 Great West Team 110 FALSE
5 Bad East Team 85 FALSE
6 Bad West Team 88 FALSE

新列good_and_east返回以下值:

  • 如果团队包含“Good”和“Is” ,则为 TRUE
  • 如果团队不包含“Good”和“Is”,则为FALSE

请注意,由于只有一个包含“Good”子字符串“East”子字符串的球队名称,因此仅返回一个TRUE值。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

A:如何检查字符是否在字符串中
A:如何删除字符串中的空格
A:如何提取特定字符之间的字符串

添加评论

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