在字符串

时间:2018-05-02 17:08:31

标签: r regex

想知道搜索具有特定字符数的字符串的最有效方法。例如。如何仅使用正斜杠的数量从以下字符串中选择#2,#4,#5?

1. d/e/b/f
2. d/e
3. e/c/b/f/d
4. e/d
5. x/y

2 个答案:

答案 0 :(得分:0)

使用str_count

这是一个简单的步骤
library(stringr)

df <- data.table(col1 = c('d/e/b/f', 'd/e', 'e/c/b/f/d', 'e/d', 'x/y'))

df[, slash_count := sapply(col1, str_count, pattern = '\\/', USE.NAMES = F)]
print(df[slash_count == 1, 'col1'])

   col1
1:  d/e
2:  e/d
3:  x/y

答案 1 :(得分:0)

这是直截了当的:

subset(df,nchar(gsub("[^/]","",df$col1))==1)
  col1
2  d/e
4  e/d
5  x/y

或者你可以这样做:

library(tidyverse)
library(stringr)
df%>%filter(str_count(col1,"/")==1)
  col1
1  d/e
2  e/d
3  x/y