首页 > 解决方案 > 如何在 R 中进行 VLOOKUP?

问题描述

 #Data generation
 firm <- c("firm1","firm2","firm3","firm4")
 comment2 <- c(51,5104,"",510466)
 commenta <- c(51,51,"",51)
 commentb <- c("",04,"",04)
 commentc <- c("","","",66)

 list <- data.frame(firm,comment2,commenta,commentb,commentc)

 commentcode  <- c(51,04,66,67)
 narrcmnt <- c("less business", "more business", "unemployment", "covid")

 comment <- data.frame(commentcode,narrcmnt)

如果我想对此做一个 VLOOKUP,我是使用左连接还是更多参与?最终结果将如下所示。我知道可能涉及三个查找,但我可以在获得第一个查找后弄清楚其余的查找。narrcmnt将对应于commenta

最终结果

  firm    comment2     commmenta      commentb      commentc   narrcmnta
  firm1   51           51                                      less business
  firm2   5104         5104               04                  

标签: rleft-joinlookup

解决方案


list %>% 
  left_join(comment %>% 
              mutate(commentcode = as.character(commentcode)),
            by=c("commenta" = "commentcode")) %>% 
  mutate(narrcmnt = case_when(is.na(narrcmnt) ~ "",
                              TRUE ~ as.character(narrcmnt)))

推荐阅读