加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – R中的模式匹配和替换

发布时间:2020-12-14 06:22:43 所属栏目:百科 来源:网络整理
导读:我对正则表达式一点都不熟悉,想在R中进行模式匹配和替换. 我想用向量vec = c的每个值替换向量中的模式#1,#2:original = c(“#1”,“#2”,“#10”,“#11”)( 1,2). 我要找的结果是以下向量:c(“1”,“2”,“#11”) 我不知道该怎么做.我试过做: for(i in 1:
我对正则表达式一点都不熟悉,想在R中进行模式匹配和替换.

我想用向量vec = c的每个值替换向量中的模式#1,#2:original = c(“#1”,“#2”,“#10”,“#11”)( 1,2).

我要找的结果是以下向量:c(“1”,“2”,“#11”)
我不知道该怎么做.我试过做:

for(i in 1:2) {
    pattern = paste("#",i,sep = "")
    original = gsub(pattern,vec[i],original,fixed = TRUE)
}

但我得到:

#> original
#[1] "1"  "2"  "10" "11"

而不是:“1”“2”“#10”“#11”

我将不胜感激任何帮助!谢谢!

使用gsubfn的另一个选择:
library(gsubfn)
gsubfn("^#([1-2])$",I,original)   ## Function substituting
[1] "1"   "2"   "#10" "#11"

或者,如果要显式使用向量的值,请使用vec值:

gsubfn("^#[1-2]$",as.list(setNames(vec,c("#1","#2"))),original)

或公式表示法等效于函数表示法:

gsubfn("^#([1-2])$",~ x,original)   ## formula substituting

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读