r - 匹配和替换字符向量中的单词

我有一个带有文本行的向量,如下所示:

text<-c("Seat 1: 7e7389e3 ($2 in chips)","Seat 3: 6786517b ($1.67 in chips)","Seat 4: 878b0b52 ($2.16 in chips)","Seat 5: a822375 ($2.37 in chips)","Seat 6: 7a6252e6 ($2.51 in chips)")

我必须用其他词替换一些词,我在这样的数据框中有:

df<-data.frame(codigo=c("7e7389e3","6786517b","878b0b52","a822375","7a6252e6"),
name=c("lucas","alan","ivan","lucio","donald"))

所以我想 1) 抓取“文本”的第一行 2) 检查 df 中是否有要替换的单词 3) 替换它 4) 对下一个“文本”行执行相同的操作等等。为了有这样的东西:

[1] "Seat 1: lucas ($2 in chips)"
[2] "Seat 3: alan ($1.67 in chips)"
[3] "Seat 4: ivan ($2.16 in chips)"
[4] "Seat 5: lucio ($2.37 in chips)"
[5] "Seat 6: donald ($2.51 in chips)"

有什么公式可以做到这一点?

最佳答案

我们可以使用 str_replace_all 轻松完成此操作,它可以采用命名向量

library(stringr)
library(tibble)
str_replace_all(text, deframe(df))
#[1] "Seat 1: lucas ($2 in chips)"  
#[2] "Seat 3: alan ($1.67 in chips)" 
#[3]  "Seat 4: ivan ($2.16 in chips)"  
#[4] "Seat 5: lucio ($2.37 in chips)" 
#[5] "Seat 6: donald ($2.51 in chips)"

https://stackoverflow.com/questions/64597819/

相关文章:

r - 如何在 R Shiny 应用程序中对齐 downloadButton 和 ActionBut

python - 是否可以设置 lint 自定义设置并忽略 pylance

reactjs - 在 Next.js 中替换查询中的值

java - 给定算法的时间复杂度是多少?

python - 使用 boto3 获取新创建的亚马逊 ec2 实例的公共(public) IPv4

jsf - 用作 JSF 值的 Java 记录

assembly - 如何将浮点常量移动到 FP 寄存器中?

kubernetes - 如何在我的 configmap.yaml (Helm) 中使用 json

algorithm - 如果这个更简单、更快的算法有效,为什么我们需要 Dijkstra 算法?

python - 为什么我的 Django 表单不是 "valid"?无法获取更新数据库的 POST