首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对字符向量使用stringr::str_replace_all

对字符向量使用stringr::str_replace_all
EN

Stack Overflow用户
提问于 2018-08-31 05:13:22
回答 1查看 439关注 0票数 1

stringr包中的str_replace_all允许您通过将命名向量传递到replacement=参数来进行多次替换。

代码语言:javascript
复制
library(stringr)
charz <- data.frame(a = c('A', 'B'), stringsAsFactors = F)

# Works fine
str_replace_all('ABC', c('A' = '1', 'B' = 2))
[1] "12C" 

我如何使用来自数据帧的值,而不是裸字符向量来完成此操作?

代码语言:javascript
复制
# Does not work
# Should return "12C" as above

str_replace_all('ABC', c(charz$a[1] = '1', charz$a[2] = 2)) 
Error: unexpected '=' in "str_replace_all('ABC', c(charz$a[1] ="

str_replace_all('ABC', c(charz$a[1], charz$a[2]), c('1', '2'))
[1] "1BC" "A2C"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-31 10:10:05

在函数的帮助页面中:

如果要对同一字符串应用多个模式和替换,请将命名向量传递给pattern。

我不确定为什么您不能引用df$var来动态命名一个向量,但希望在使用str_replace_all()之前这样做对您来说是可行的。

代码语言:javascript
复制
vec <- c("1", "2")
names(vec) <- charz$a

str_replace_all("ABC", vec)
> [1] "12C"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52105442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档