首页 > 解决方案 > 将一个df中的行复制到另一个df中的每个人行中

问题描述

我有两个数据框

一个 df 只是包含列的一行:

Description | Location
   Red      |  NH

第二个 df 包含多行(比如说 3 行),其中包含列:

Item_Num | Quantity | Rating | 
    01   |    2     |   A    |
    02   |    5     |   B    |
    03   |    4     |   B+   |

我想做到这一点,以便第一个 df 中的第一行对第二个中的每一行重复。

   Description  | Location | Item_Num | Quantity | Rating | 
       Red      |  NH      |    01    |    2     |   A    |
       Red      |  NH      |    02    |    5     |   B    |
       Red      |  NH      |    03    |    4     |   B+   |

我尝试玩循环,但出现错误。加入他们对我没有用,也没有加入密钥

标签: rloopsdataframe

解决方案


一种选择是使用包中的crossing函数tidyr,它创建 2 个数据集的行组合:

# example datasets
df1 = data.frame(Description = "Red",
                 Location = "NH")

df2 = data.frame(Item = 1:3,
                 Rating = c(20,25,30))

library(tidyr)

crossing(df1, df2)

#   Description Location Item Rating
# 1         Red       NH    1     20
# 2         Red       NH    2     25
# 3         Red       NH    3     30

推荐阅读