1
我有几个数据帧匹配模式和替换字符串以进行替换。一个的前几行是这样的:矢量化字符串替换显示奇怪的行为
> df
pattern repl
1 1 111
2 2 112
3 3 113
4 5 114
5 6 115
我想,以取代在给定的矢量字符串(我们将在这里称之为str_vector
)。假设,str_vector
看起来像这样:
> str_vector
[1] "1" "2" "3" "4" NA "6" "7" "8" "9" "10"
我不能够置换str_vector
与相应df$repl
匹配字符串df$pattern
的元素。我在这个问题上阅读了很多线索,但是,到目前为止没有任何工作。使用qdap
,stringr
和stringi
回报:
> qdap::mgsub(df$pattern,df$repl,str_vector)
[1] "111" "1111112" "1111113" "4" NA
[6] "1111111111114" "7" "8" "9" "1110"
> stringr::str_replace(df$pattern,df$repl,str_vector)
[1] "1" "2" "3" "5" "6" "1" "2" "3" "5" "6"
> stringi::stri_replace_all_fixed(df$pattern,df$repl,str_vector,vectorize_all = TRUE)
[1] "1" "2" "3" "5" "6" "1" "2" "3" "5" "6"
任何帮助,将不胜感激。
非常感谢,非常感谢!
的df
和str_vector
繁殖:
df<-structure(list(pattern = c("1", "2", "3", "5", "6"), repl = c("111",
"112", "113", "114", "115")), .Names = c("pattern", "repl"), row.names = c(NA,
-5L), class = "data.frame")
str_vector<-c("1", "2", "3", "4", NA, "6", "7", "8", "9", "10")
什么是您预期的输出? – akrun
'str_vector'应该变为'111 112 113 NA NA 115'。 –