代码之家  ›  专栏  ›  技术社区  ›  Jim.W

将一个df中的行复制到另一个df中的everyone行

  •  0
  • Jim.W  · 技术社区  · 6 年前

    我有两个数据帧

    Description | Location
       Red      |  NH
    

    第二个df包含多行(假设为3行),其中包含以下列:

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

    我想让第一个df中的第一行重复第二个df中的每一行。

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

    我试着玩循环,但得到一个错误。加入他们对我不起作用,也没有加入密钥

    2 回复  |  直到 6 年前
        1
  •  2
  •   AntoniosK    6 年前

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

    # 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
    
        2
  •  0
  •   c.custer    6 年前

    这应该管用

    second.df$Description <- first.df$Description
    second.df$Location <- first.df$Location