R 中多个搜索模式的 grep() 循环

grep() loop for multiple search patterns in R

我有许多不同的值编码的信息(作为一个因素的水平),我需要根据在每个水平中找到的多个标准来统一这些水平。

假设所有这些因素水平实际上意味着 Spring 2007 年: spring 07, S7, SP07, spring2007, SPRING07...

因为我有不同的年份和两个季节(Spring 和秋季),我需要根据两个标准替换因子水平:季节 年。问题是,我可以 运行 这段代码,但它不会修改数据框中的任何内容 s2

for(i in 1: ncol(s2){
  levels(s2[,i]) <- replace(levels(s2[,i]),
                                 (grep("s & 7",levels(s2[,i]),
                                       ignore.case=TRUE)),
                            S2007)
  .....
}

你觉得我应该修改什么?提前致谢!

您的正则表达式不正确,它从字面上匹配字符串 "s & 7",因为& 不是特殊的正则表达式字符。

改为使用 "s.*7",这意味着 s 后跟任何内容 0 次或多次,然后是 t