代码之家  ›  专栏  ›  技术社区  ›  jyjek

将两个数据帧与所有可设置位置的组合组合组合在一起

  •  0
  • jyjek  · 技术社区  · 7 年前

    我有两个数据帧。
    我怎么能做出这样的东西 tidyr::complete 和他们一起使用 tidyverse ?

    我的数据:

    df <-data.frame(a=letters[1:2] )
    df1<-data.frame(one=1:2)
    

    预期结果:

    a 1 
    b 1
    a 2
    b 2
    

    谢谢!

    2 回复  |  直到 7 年前
        1
  •  2
  •   Lennyy    7 年前

    对于这个特殊的例子,我认为您可以使用merge函数。作为标准,它的参数all.x和all.y都设置为true,因此它会自动创建所有组合,因为数据帧没有共同的变量或值。

    df <-data.frame(a=letters[1:10] )
    df1<-data.frame(one=1:10)
    
    dfcomb <- merge(df,df1)
    dim(dfcomb) 
    [1] 100   2 #gives 100 rows and 2 columns
    
        2
  •  0
  •   MartijnVanAttekum    7 年前

    对于特定示例,可以使用expand.grid:

    expand.grid(df[[1]],df1[[1]])
      Var1 Var2
    1    a    1
    2    b    1
    3    a    2
    4    b    2