【问题标题】:Replace values in column with matching column in different DF用不同 DF 中的匹配列替换列中的值
【发布时间】:2018-11-27 10:39:35
【问题描述】:

我有两个数据框:

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)

【问题讨论】:

    标签: r dplyr data.table


    【解决方案1】:

    您在这里的问题不是很清楚。对于你的 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 匹配,因此我认为我的假设是正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-23
      • 2017-07-19
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      相关资源
      最近更新 更多