使用循环在R中搜索模式

时间:2014-12-17 03:23:28

标签: r pattern-matching

我正在进行模式搜索:

  library(stringr)
  str_count(data,"\\<1\\>")

那就是搜索&#34; 1&#34;在data.I需要做

  str_count(data,"\\<i \\>")

其中i = {1,2,... 20}

怎么可能这样做。

谢谢

2 个答案:

答案 0 :(得分:1)

也许你可以这样做:

vec <- 1:20 
sapply(vec, function(x) str_count(data, sprintf("\\%s\\>", x)))

也就是说,使用sprintf构建您的模式。

答案 1 :(得分:1)

您也可以使用paste

library(stringr)
sapply(paste0("\\<",1:20, "\\>"), function(x) str_count(data, x))

或者

table(1:20,factor(str_extract(data, '\\d+'), levels=1:20))

数据

set.seed(24)
data <- paste0("\\<", sample(1:20,20,replace=TRUE),  "\\>")