首页 > 解决方案 > 使用数据字典应用值替换

问题描述

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")使用字典数据框创建。我有一百多个项目要编码,所以硬编码不是一种选择。任何有关如何使这项工作或其他方式的指导将不胜感激!

标签: rreplace

解决方案


从字典创建一个命名向量并使用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"   

推荐阅读