我试图用字符串值替换一些数字(从 1 到 15),但效果不正确。这是我的代码:
before = c("1","11","2","22")
after = c("A","B","c","E")
phrase = list( c("1","11") , c("2","22") )
for (i in phrase){
r = stringi::stri_replace_all_fixed(
i ,
before,
after,
vectorize_all = FALSE)
print(r)
}
这就是我得到的
[1] "A" "AA"
[1] "c" "cc"
我该如何纠正这个问题?
您不需要正则表达式,因为您正在进行全文匹配。您可以创建一个查找向量和一个简单的索引替换
lookup <- setNames(after, before)
for (i in phrase){
r <- unname(lookup[i])
print(r)
}
# [1] "A" "B"
# [1] "c" "E"
为“Mark”加油 :-) , 创建
myLUT <- cbind(before, after)
可能更容易,只需围绕 myLUT[which(phrase[[j]][k] == myLUT[,1]),2]
编写一个循环(未测试)