我有一组复杂的标识符,它们是数据帧的列名。这个正则表达式匹配所有这些:
regex <- "^PLUTO-.{2}-.{4}-01.{1}-.{3}-.{4}-.{2}$"
现在我想使用这个正则表达式生成随机标识符来得到这样的结果:
"PLUTO-xx-xxxx-01x-xxx-xxxx-xx"
"PLUTO-xx-xxxx-01x-xxx-xxxx-xx"
...
其中x是随机字符。
是否有一个函数可以在R中执行此类操作?我在java和python中找到了这样的主题但在R中没有(只有paste()和collapse()解决方案)。
答案 0 :(得分:1)
一个选项是gsubfn
library(gsubfn)
gsub("\\^|\\$", "", gsubfn("\\.{([[:digit:]]+)}", ~ paste(rep("x", n), collapse=""), regex))
#[1] "PLUTO-xx-xxxx-01x-xxx-xxxx-xx"