Need help with joining two data frames together and fill up empty rows

sales <- tibble(Date=c("2018-07-01", "2018-07-01", "2018-07-01", "2018-07-02", "2018-07-02", "2018-07-03", "2018-07-03", "2018-07-04"), 
                Sales=c(7,5,2,1,9,1,8,6), 
                Article=c("Article A", "Article B", "Article C", "Article A", "Article B", "Article A", "Article C", "Article B")) %>%
         mutate(Date=as.Date(Date))

# A tibble: 7 x 3
   Date       Sales Article                                  
   <date>     <dbl> <chr>                                    
 1 2018-07-01     7 Article A                              
 2 2018-07-01     5 Article B
 3 2018-07-01     2 Article C                               
 4 2018-07-02     1 Article A
 5 2018-07-02     9 Article B              
 6 2018-07-03     1 Article A
 7 2018-07-03     8 Article C
 8 2018-07-04     6 Article B      
dates <- tibble(Date=c("2018-07-01", "2018-07-02", "2018-07-03", "2018-07-04"),
                        Sales=c(0,0,0,0)) %>%
             mutate(Date=as.Date(Date))

# A tibble: 3 x 2
   Date       Sales
   <date>     <dbl>
 1 2018-07-01     0
 2 2018-07-02     0
 3 2018-07-03     0
 4 2018-07-04     0

I have these two data frames and want a final data frame where all articles are listed even though they have 0 Sales at a certain date. So it migth look like this:

# A tibble: 12 x 3
   Date       Sales Article                                  
   <date>     <dbl> <chr>                                    
 1 2018-07-01     7 Article A                              
 2 2018-07-01     5 Article B
 3 2018-07-01     2 Article C
 4 2018-07-02     1 Article A                          
 5 2018-07-02     9 Article B
 6 2018-07-02     0 Article C              
 7 2018-07-03     1 Article A
 8 2018-07-03     0 Article B
 9 2018-07-03     8 Article C
10 2018-07-04     0 Article A
11 2018-07-04     6 Article B
12 2018-07-04     0 Article C      

I have tried different join functions, but I did not get it the way I want it
Every Feedback appriciated, Thank you!

I'm not seeing that the dates frame adds any information for the task.
I believe this is a solution

sales$Article <- factor(sales$Article)
tidyr::complete(sales,Date,Article,fill=list(Sales=0))
# A tibble: 12 x 3
# Date       Article   Sales
# <date>     <fct>     <dbl>
# 1  2018-07-01 Article A     7
# 2  2018-07-01 Article B     5
# 3  2018-07-01 Article C     2
# 4  2018-07-02 Article A     1
# 5  2018-07-02 Article B     9
# 6  2018-07-02 Article C     0
# 7  2018-07-03 Article A     1
# 8  2018-07-03 Article B     0
# 9  2018-07-03 Article C     8
# 10 2018-07-04 Article A     0
# 11 2018-07-04 Article B     6
# 12 2018-07-04 Article C     0
1 Like

i wasnt sure if the dates frame whould add any value for this task either.
however your solution was exactly what i was looking for. Thank you

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.