R 查找并用nomatch替换大容量

R 查找并用nomatch替换大容量,r,match,R,Match,我有一个像这样的数据框 df.uid <- c(100, 101, 102, 103, 104) df.code <- c("AA", "BB", "CC", "1000", "1001") df <- data.frame(df.uid, df.code) df df.uid df.code 1 100 AA 2 101 BB 3 102 CC 4 103 1000 5 104 1001 looku

我有一个像这样的数据框

df.uid <- c(100, 101, 102, 103, 104)
df.code <- c("AA", "BB", "CC", "1000", "1001")
df <- data.frame(df.uid, df.code)
df
  df.uid df.code
1    100      AA
2    101      BB
3    102      CC
4    103    1000
5    104    1001
lookup.id <- c("1000", "1001")
lookup.code <- c("DD", "EE")
lookup <- data.frame(lookup.id, lookup.code)
lookup
  lookup.id lookup.code
1      1000          DD
2      1001          EE

如何使好的数据保持原样?

dplyr
包作为一个
recode
函数,可以帮助实现这一点。差不多

df$df.code <- recode(df$df.code, !!!rlang::set_names(as.list(lookup.code), lookup.id))

df$df.code谢谢!它适用于我的示例数据集。然而,我尝试了我的实际数据。结果是,
错误:`.default`必须是整型,而不是字符
我不知道我的实际数据和我的实际数据有什么不同。。
df$df.code <- lookup$lookup.code[match(df$df.code, lookup$lookup.id)]
df
      df.uid df.code
1    100    <NA>
2    101    <NA>
3    102    <NA>
4    103      DD
5    104      EE
df$df.code <- recode(df$df.code, !!!rlang::set_names(as.list(lookup.code), lookup.id))