r - 如何使用多列作为键合并两个数据框?

标签 r merge dataframe compound-key

假设我有以下数据框:

DF1 <- data.frame("A" = rep(c("A","B"), 18),
                  "B" = rep(c("C","D","E"), 12),
                  "NUM"= rep(rnorm(36,10,1)),
                  "TEST" = rep(NA,36))

DF2 <- data.frame("A" = rep("A",6),
                  "B" = rep(c("C","D"),6),
                  "VAL" = rep(c(1,3),3))

*注:每个唯一的变量组合ABDF2应该有一个唯一的 VAL .

对于每一行,我想替换 NATEST对应的值为 VALDF1如果列中的值 AA匹配和列中的值 BB匹配该行。否则,我会离开 TESTNA .如果不使用 match 循环遍历每个组合,我将如何做到这一点?

理想情况下,答案将扩展到两个数据框,其中包含许多要匹配的列。

最佳答案

# this is your DF1    
DF1 <- data.frame("A" = rep(c("A","B"), 18),
                      "B" = rep(c("C","D","E"), 12),
                      "NUM"= rep(rnorm(36,10,1)),
                      "TEST" = rep(NA,36))

#this is a DF2 i created, with unique A, B, VAL
DF2 <- data.frame("A" = rep(c("A","B"),3),
                  "B" = rep(c("C","D","E"),2),
                  "VAL" = rep(1:6))

# and this is the answer of what i assume you want      
tmp <- merge(DF1,DF2, by=c("A","B"), all.x=TRUE, all.y=FALSE)
DF1[4] <- tmp[5]

关于r - 如何使用多列作为键合并两个数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29212691/

相关文章:

git - git 中checkout 远程分支和pull 远程分支的区别?

xml - 在 xml/xslt 中分组/合并相同节点的子节点

r - RMarkdown for Word 文档中的交叉引用

r - 从存储为字符的时间变量中获取时间差

r - 使用 facet_wrap 和 ggplotly 的第一个和最后一个方面比中间方面大

r - 如何让 R 使用更多 CPU 使用率?

excel - 如何根据相似值合并单元格 - Excel 2010

python - 让 pandas Wide_to_long() 函数考虑 stub 在列名的末尾而不是开头

python - Pandas:检查列中是否存在一个值,创建一个新列,存在加1,不存在加0

r - 如何在不丢失行的情况下连接数据框