如何基于查找表替换列中的字符串值

时间:2019-05-23 18:55:50

标签: r string lookup

我有这个df。我想根据查找表替换“ 1.1”,“ 2.1”,“ 3.2”等的每个实例。

enter image description here

查询表

enter image description here

所需的输出

enter image description here

我看着Replace values in a dataframe based on lookup table不能解决我的问题。 预先感谢!

1 个答案:

答案 0 :(得分:2)

选项为gsubfn。我们将一个或多个数字与一个点([0-9.]+)匹配为模式,并在替换中传递从第二个数据集('df2')创建的{/ {1}}键/值对。对于带有“键”的匹配模式,它将替换字符串中相应的“值”

list

数据

library(gsubfn)
df1$Node <- gsubfn("([0-9.]+)", as.list(setNames(df2$Label,df2$Node)), df1$Node)
df1$Node
#[1] "One one > Two one > Three two" "One two > Two two > Three one" "One one > Two two > Three one" "One two > Two one > Three two"
#[5] "One one > Two two > Three two"