【问题标题】:How to create a combination with 2 datasets in R如何在 R 中创建与 2 个数据集的组合
【发布时间】:2011-06-16 01:35:47
【问题描述】:

如何创建一个包含两个数据集的所有可能组合的数据集?

例如,会有 2 个包含特定列的数据集:

ds1 = letters[1:4]
ds2 = letters[5:8]

如果这会影响任何事情,每个字母也会有相关的值(但我认为它不应该)

ds1 = data.frame(a=letters[1:4],b=1:4)
ds2 = data.frame(a=letters[5:8],b=5:8)

在最终数据集中,我希望有 ds1ds2 的所有组合(例如 ae、af、ag 等)

一开始我想用merge,所以我尝试这样做,但没有成功。我在想一个 for 循环可能是答案,但我不确定我将如何开始。

建议?谢谢!

【问题讨论】:

    标签: r combinations


    【解决方案1】:

    也许你想要expand.grid()expand.grid() 从提供的向量或因子的所有组合中创建一个数据框。 letters() 包含 26 个小写字母,因此我们可以索引前 4 个 (A - D) 和后四个 (E - H) 以传递给 expand.grid()

    > expand.grid(letters[1:4], letters[5:8])
       Var1 Var2
    1     a    e
    2     b    e
    3     c    e
    4     d    e
    5     a    f
    6     b    f
    7     c    f
    8     d    f
    9     a    g
    10    b    g
    11    c    g
    12    d    g
    13    a    h
    14    b    h
    15    c    h
    16    d    h
    

    【讨论】:

      【解决方案2】:

      您似乎想要 ds1 和 ds2 的笛卡尔积。为此,请使用merge(ds1, ds2, by=NULL)

      【讨论】:

        猜你喜欢
        • 2021-10-16
        • 1970-01-01
        • 2017-10-16
        • 1970-01-01
        • 1970-01-01
        • 2022-12-02
        • 2021-09-15
        • 1970-01-01
        相关资源
        最近更新 更多