将两个数据框与所有可能的组合结合起来

jyj*_*jek 2 r dplyr tidyr tidyverse

我有 2 个数据框。
我怎么能用tidyr::complete它们制作类似的东西tidyverse

我的数据:

df <-data.frame(a=letters[1:2] )
df1<-data.frame(one=1:2)
Run Code Online (Sandbox Code Playgroud)

预期结果:

a 1 
b 1
a 2
b 2
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ron*_*hah 9

您可以使用tidyr::crossing

tidyr::crossing(df, df1)

# A tibble: 4 x 2
#  a       one
#  <chr> <int>
#1 a         1
#2 a         2
#3 b         1
#4 b         2
Run Code Online (Sandbox Code Playgroud)

或者expand_grid

tidyr::expand_grid(df, df1)
Run Code Online (Sandbox Code Playgroud)


Len*_*nyy 5

对于这个特定的例子,我认为你可以只使用合并功能。作为标准,它的参数 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
Run Code Online (Sandbox Code Playgroud)