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))