正则表达式 – 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |