匹配和替换R中数据框中的操作

Ama*_*eet 1 replace r pattern-matching match vlookup

假设我的数据集如下:

John   NA    kaira   
carry  John  NA
maya   Sam   maya
leo    paty  leo
tinker NA    tinker
fabo   leo   maya
Run Code Online (Sandbox Code Playgroud)

我有另一个数据集:

John   1
carry  2
maya   3
leo    4
tinker 5
fabo   6
sam    7
paty   8 
kaira  9
Run Code Online (Sandbox Code Playgroud)

我想将上表(df2)的值与第一个表(df1)匹配,所以我的最终表(df)如下所示:

1   NA   9   
2   1    NA
3   7    3
4   8    4
5   NA   5
6   4    3
Run Code Online (Sandbox Code Playgroud)

Dav*_*urg 6

也可以

df1[] <- match(unlist(df1), df2$V1)
#   V1 V2 V3
# 1  1 NA  9
# 2  2  1 NA
# 3  3 NA  3
# 4  4  8  4
# 5  5 NA  5
# 6  6  4  3
Run Code Online (Sandbox Code Playgroud)

如果输入的数字df2并不总是有序,那么abit会调整代码

df1[] <- df2[match(unlist(df1), df2$V1), 2]
Run Code Online (Sandbox Code Playgroud)