用不同DF中的匹配列替换列中的值

时间:2018-11-27 10:39:35

标签: r dplyr data.table

我有两个数据框:

DF <- data.frame(A=letters[1:5],B=1:5) 
DF_2 <- data.frame(match_col = c("a","a","c"))

在这里,我们只需要获取DF_2$match_col的匹配列

final_df <- data.frame(A=c("a","a","c","d","e"),B=1:5)

1 个答案:

答案 0 :(得分:0)

您在这里的问题不是很清楚。对于您的DF_2,我不确定其中是否有B列。我假设您忘了包含它,因为我假设您需要该列来执行匹配。

请参见以下内容:

DF <- data.frame(A=letters[1:5],B=1:5) 
DF_2 <- data.frame(match_col = c("a","a","c"))
DF_2$B=c(1:3)
DF$A= as.character(DF$A)
DF_2$match_col= as.character(DF_2$match_col)
for(id in 1:nrow(DF_2)){
  DF$A[DF$B %in% DF_2$B[id]] <- DF_2$match_col[id]
}

DF

在这里我的DF与您的final_df匹配,因此我认为我的假设是正确的。