Я проверяю функцию str_replace_all
в пакете stringr
.Пожалуйста, смотрите код ниже.
library(stringr)
originalString<-c("d", "a", "c")
patternColor=c("coral", "burlywood1", "darkkhaki")
names(patternColor)<-originalString
subsetColNameChar<-c("d", "d", "a", "a", "c", "c")
replaceOut<-str_replace_all(subsetColNameChar, patternColor)
replaceOut
[1] "darkkhakiorburlywood1l" "darkkhakiorburlywood1l" "burlywood1" "burlywood1" "darkkhaki" "darkkhaki"
Ожидаемый результат должен быть:
[1] "coral" "coral" "burlywood1" "burlywood1" "darkkhaki" "darkkhaki"
Но, как вы видите выше, он заменяет «c» и «a» в «коралле» на «darkkhaki»и снова «burlywood1».(Если вы видите это внимательно, все еще остаются «или» и «l»).Если бы я использовал только число в originalString<-c("1","2","3")
, я мог бы получить правильную замену, как я ожидаю.Но я не знаю, почему str_replace_all
снова заменяет "c" и "a" в "коралле", которые уже заменены.Как можно решить эту проблему?