想知道搜索具有特定字符数的字符串的最有效方法。例如。如何仅使用正斜杠的数量从以下字符串中选择#2,#4,#5?
1. d/e/b/f
2. d/e
3. e/c/b/f/d
4. e/d
5. x/y
答案 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