如何用正确的值(字符串)替换数字?

问题描述 投票:0回答:2

我试图用字符串值替换一些数字(从 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"

我该如何纠正这个问题?

r replace gsub
2个回答
1
投票

您不需要正则表达式,因为您正在进行全文匹配。您可以创建一个查找向量和一个简单的索引替换

lookup <- setNames(after, before)

for (i in phrase){
  r <- unname(lookup[i])
  print(r)
}
# [1] "A" "B"
# [1] "c" "E"

1
投票

为“Mark”加油 :-) , 创建

myLUT <-  cbind(before, after)
可能更容易,只需围绕
myLUT[which(phrase[[j]][k] == myLUT[,1]),2]
编写一个循环(未测试)

© www.soinside.com 2019 - 2024. All rights reserved.