我有一个像这样的字符串向量:
strings = c('abc||dhbsaf||fasdf||fasdf||dfs','abc||dhf||fa9df||fasaf||dfs')
我有这样的模式:
pattern = c('abc||dhbsaf||fasdf||fasdf||dfs','abc||dhf||fa9df||fasaf||32a')
我想计算匹配模式的数量。例如,对于与第一个字符串进行比较的第一个模式,将为下一个字符串提供5/5和4/5的结果。我不知道如何在R
中完成答案 0 :(得分:0)
我们可以在||
上拆分字符串,然后在'模式'的相应元素上执行%in%
。使用'字符串'
colSums(mapply(`%in%`, strsplit(pattern, '[|]+'), strsplit(strings, '[|]+')))
#[1] 5 4
或者另一种选择是根据'模式提取元素。并获得lengths
library(stringr)
lengths(str_extract_all(strings, gsub("\\|+", "|", pattern)))
#[1] 5 4