title: Complete and fill missing data in groups using another data frame
body: <p>How can I complete missing values by group?</p>
  
  <p>I have a df with recomendations and ranks, and I need to insert default recomendations when I dont have at least 4 of it.</p>
  
  <p>Input example:</p>
  
  <pre><code>library(tidyverse)
  
  fixed_recomendations &lt;- data.frame(recomendation_id = 50:54, name = paste("recomendation", 50:54, sep = "_"), stringsAsFactors = FALSE)
  
  content_id &lt;- c(1,1,2,rep(3, 6))
  rank &lt;- c(1, 2, 1, 1:6)
  recomendation_id &lt;- c(1:9)
  name &lt;- paste("recomendation", recomendation_id, sep = "_")
  df &lt;- data.frame(content_id, rank, recomendation_id, name, stringsAsFactors = FALSE)
  
  # content_id rank recomendation_id  name
  # 1         1     1                 recomendation_1
  # 1         2     2                 recomendation_2
  # 2         1     3                 recomendation_3
  # 3         1     4                 recomendation_4
  # 3         2     5                 recomendation_5
  # 3         3     6                 recomendation_6
  # 3         4     7                 recomendation_7
  # 3         5     8                 recomendation_8
  # 3         6     9                 recomendation_9
  </code></pre>
  
  <p>I have tried to do it with complete/fill but it does not respect the groups and it also cut the values outside of rank range.</p>
  
  <pre><code>df %&gt;% 
    complete(content_id, rank = 1:4, 
             fill = list(
              recomendation_id = fixed_recomendations$recomendation_id,
              name = fixed_recomendations$name
              ))
  
  # content_id  rank recomendation_id name
  # 1           1      1               recomendation_1
  # 1           2      2               recomendation_2
  # 1           3     50              recomendation_50
  # 1           4     51              recomendation_51
  # 2           1      3               recomendation_3
  # 2           2     52              recomendation_52
  # 2           3     53              recomendation_53
  # 2           4     54              recomendation_54
  # 3           1      4               recomendation_4
  # 3           2      5               recomendation_5
  # 3           3      6               recomendation_6
  # 3           4      7               recomendation_7
  </code></pre>
  
  <p>Desired output:</p>
  
  <pre><code># content_id  rank recomendation_id name
  # 1           1      1               recomendation_1
  # 1           2      2               recomendation_2
  # 1           3     50              recomendation_50
  # 1           4     51              recomendation_51
  # 2           1      3               recomendation_3
  # 2           2     50              recomendation_50
  # 2           3     51              recomendation_51
  # 2           4     52              recomendation_52
  # 3           1      4               recomendation_4
  # 3           2      5               recomendation_5
  # 3           3      6               recomendation_6
  # 3           4      7               recomendation_7
  # 3           5      8               recomendation_8
  # 3           6      9               recomendation_9
  </code></pre>