r - 用查找表替换部分文本值?
问题描述
我将如何根据查找表(名称中的 new.text)替换部分值(df1 中的问题) - 这看起来像 df2 中的内容。我假设带有 gsub 的 lapplpy 可以完成这项工作,但无法弄清楚语法!
set.seed(42)
df1 <- data.frame(question = c("Hello - a", "Hello - b", "Goodbye - a", "Goodbye - b"),
variable = rnorm(4))
df1
question variable
1 Hello - a 1.3709584
2 Hello - b -0.5646982
3 Goodbye - a 0.3631284
4 Goodbye - b 0.6328626
names <- data.frame(text = c("Hello", "Goodbye", "Good Morning"),
new.text = c("1", "2", "3"))
names
text new.text
1 Hello 1
2 Goodbye 2
3 Good Morning 3
set.seed(42)
df2 <- data.frame(question = c("1 - a", "1 - b", "2 - a", "2 - b"),
variable = rnorm(4))
df2
question variable
1 1 - a 1.3709584
2 1 - b -0.5646982
3 2 - a 0.3631284
4 2 - b 0.6328626
解决方案
使用stringr::str_replace_all
-
df1$question <- stringr::str_replace_all(df1$question,
setNames(names$new.text, names$text))
df1
# question variable
#1 1 - a 1.3709584
#2 1 - b -0.5646982
#3 2 - a 0.3631284
#4 2 - b 0.6328626
推荐阅读
- javascript - Video.js 删除 HTML 跨度
- javascript - 使用 AJAX 检索嵌套的 JSON 数组并输出到 HTML 列表
- javascript - 热图按日期隐藏列
- python-3.x - 如何评估具有多个输入的 sympy 符号函数
- javascript - 如何使用 Vue 实例中的 Global Mixin 方法
- docker - Kubernetes GCP 上的持久磁盘问题
- javascript - 当我单击带有 Java 脚本功能的按钮时,我收到一条消息,指出该功能未定义
- excel - 在特定代码行备份+恢复 IDE 书签
- excel - 为什么我的代码中不能使用多种“NextFree = Range”语言?
- cassandra - Cassandra的提交日志放在SSD上会不会有写放大问题?