r - 使用数据字典应用值替换
问题描述
df1=c("blue,green,green", "blue", "green")
dictionary=data.frame(label=c("blue","green"),value=c(1,2))
want=c("1,2,2","1","2")
我正在寻找使用数据字典替换一些数据。数据 (df1) 可能在一个单元格中有多个条目,以逗号分隔。我查看了 str_replace_all 并且能够这样做,str_replace_all(colors,c("blue"="1","green"="2"))
但我无法c("blue"="1","green"="2")
使用字典数据框创建。我有一百多个项目要编码,所以硬编码不是一种选择。任何有关如何使这项工作或其他方式的指导将不胜感激!
解决方案
从字典创建一个命名向量并使用str_replace_all
library(dplyr)
library(stringr)
library(tibble)
dictionary %>%
mutate(value = as.character(value)) %>%
deframe %>%
str_replace_all(df1, .)
#[1] "1,2,2" "1" "2"
推荐阅读
- ruby-on-rails - 无法使用 odbc 连接到 Ruby on Rails 中的普遍数据库
- react-native - 从世博会退出后,我可以再次进入我的托管工作流程吗
- r - for 循环问题 [疑难解答]
- python - 为什么在使用 PolynomialFeatures 时需要在 transform() 之前调用 fit()?
- python - 如何解决 ValueError: could not convert string to float: '7,000'
- python - re.findall 在 Python 中生成类似列表的数组
- javascript - 操作无法完成: - 创建/更新:未设置必填字段。- 删除:另一个模型需要删除记录...Odoo 14
- reactjs - 如何使用 useDispatch 等待动作结束继续前进?
- vba - 从当前幻灯片或所有幻灯片中的文本框和形状中删除文本
- message-queue - 在没有确认的情况下实现 Spring JMSTemplate