Reputation: 2707
I have 2 data frames.
How I can make something like tidyr::complete
with them using tidyverse
?
My data:
df <-data.frame(a=letters[1:2] )
df1<-data.frame(one=1:2)
Expected Result:
a 1
b 1
a 2
b 2
Thx!
Upvotes: 3
Views: 9160
Reputation: 388982
You can use 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
or expand_grid
tidyr::expand_grid(df, df1)
Upvotes: 10
Reputation: 1435
for your specific example, expand.grid can be used:
expand.grid(df[[1]],df1[[1]])
Var1 Var2
1 a 1
2 b 1
3 a 2
4 b 2
Upvotes: 0
Reputation: 6132
With this particular example I think you can just use the merge function. As a standard its arguments all.x and all.y are set to TRUE, so it automatically creates all combinations since the dataframes do not have any variables or values in common.
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
Upvotes: 5