将表格与 R 中的 doppel Key 组合

Combine Tables with doppel Key in R

我有两个数据集,想使用双键将列从 DATA2 添加到 DATA1。

问题: Data1 的行数多于 DATA2。

我要R用右双键复制所有值。 我有 2 个数据集要添加到两列中。但是,DATA1 的行数(同一行被多次提及)比 DATA 2 多。

我有:

    DATA1                    DATA2
    key1  key 2 ...           key1  key2   XXX
    A     1                   A     1       X
    A     1                   A     2       Y
    A     2                   B     1       Z
    B     1                   
    B     1
    B     1
    .

我的目标是将列 XXX 添加到 DATA1。 DATA 2的值XXX应该在DATA1比较频繁的行中复制或提及几次。

我需要的:

DATA 1                    DATA2
key1  key 2  WERTE        key1  key2  WERTE
A     1       X            A     1       X
A     1       X            A     2       Y
A     2       Y            B     1       Z
B     1       Z
B     1       Z
B     1       Z       

Hugh 感谢您提供任何帮助或想法! :)

我想到了 full_join 和 dplyr 但做不到。

很遗憾,我还不是 R 专家。如果你们中的任何人有想法并且可以帮助我,我将不胜感激。

此致

您可以使用 dplyr 中的 left_join 和 select 多个要加入的列 by。您可以使用以下代码:

DATA1 <- data.frame(key1 = c("A", "A", "A", "B", "B", "B"),
                    key2 = c(1, 1, 2, 1, 1, 1))

DATA2 <- data.frame(key1 = c("A", "A", "B"),
                    key2 = c(1, 2, 1),
                    XXX = c("X", "Y", "Z"))

library(dplyr)
DATA_COMBINED <- left_join(DATA1, DATA2, by = c("key1", "key2"))
DATA_COMBINED

输出:

  key1 key2 XXX
1    A    1   X
2    A    1   X
3    A    2   Y
4    B    1   Z
5    B    1   Z
6    B    1   Z