我要检查1个数据框中的值(例如在“字母”下面的示例)是否出现在另一个数据框中。如果是这种情况,我希望将一个特定于该值的值(例如,在“排名”下方)从第一个数据帧添加到第二个数据帧...我现在拥有以下内容:
Df1 <- data.frame(c("A", "C", "E"), c(1:3))
colnames(Df1) <- c("letters", "ranking")
Df2 <- data.frame(c("A", "B", "C", "D", "E"))
colnames(Df2) <- c("letters")
Df2$rank <- ifelse(Df2$letters %in% Df1$letters, 1, 0)
但是...我想从Df1中获取特定的“排名”数字,而不是在字母重叠时获得“ 1”。
谢谢!
答案 0 :(得分:1)
dplyr软件包最适合这个用途。
Df2 <- Df2 %>%
left_join(Df1,by = "letters")
如果您要保留它,它将显示“ D”的NA。
否则,您可以进行semi_join
DF2 <- Df2 %>%
semi_join(Df1, by = "letters")
这只会保留它们的共同点(交叉点)