title: tidyr: multiple unnesting with varying NA counts
body: <p>I'm confused about some tidyr behavior. I can unnest a single response like this:</p>
  
  <pre><code>library(tidyr)
  
  resp1 &lt;- c("A", "B; A", "B", NA, "B")
  resp2 &lt;- c("C; D; F", NA, "C; F", "D", "E")
  resp3 &lt;- c(NA, NA, "G; H; I", "H; I", "I")
  data &lt;- data.frame(resp1, resp2, resp3, stringsAsFactors = F)
  
  tidy &lt;- data %&gt;%
    transform(resp1 = strsplit(resp1, "; ")) %&gt;%
    unnest()
  
  # Source: local data frame [6 x 3]
  #
  #      resp2   resp3 resp1
  #      (chr)   (chr) (chr)
  # 1 C; D; F      NA     A
  # 2      NA      NA     B
  # 3      NA      NA     A
  # 4    C; F G; H; I     B
  # 5       D    H; I    NA
  # 6       E       I     B
  </code></pre>
  
  <p>But I need to unnest multiple columns in my dataset, and the columns have varying numbers of NAs. I tried this and it threw an error:</p>
  
  <pre><code>data %&gt;%
    transform(resp1 = strsplit(resp1, "; "),
              resp2 = strsplit(resp2, "; "),
              resp3 = strsplit(resp3, "; ")) %&gt;%
    unnest()
  # Error: All nested columns must have the same number of elements.
  </code></pre>
  
  <p>I expected the code above would give me the same output as the following:</p>
  
  <pre><code># unnesting multiple response (desired output / is there a better way?)
  data %&gt;%
    transform(resp1 = strsplit(resp1, "; ")) %&gt;%
    unnest() %&gt;%
    transform(resp2 = strsplit(resp2, "; ")) %&gt;%
    unnest() %&gt;%
    transform(resp3 = strsplit(resp3, "; ")) %&gt;%
    unnest()
  
  #     resp1 resp2 resp3
  #     (chr) (chr) (chr)
  # 1      A     C    NA
  # 2      A     D    NA
  # 3      A     F    NA
  # 4      B    NA    NA
  # 5      A    NA    NA
  # 6      B     C     G
  # 7      B     C     H
  # 8      B     C     I
  # 9      B     F     G
  # 10     B     F     H
  # 11     B     F     I
  # 12    NA     D     H
  # 13    NA     D     I
  # 14     B     E     I
  </code></pre>
  
  <p>I'm new to R, but this feels clunky and makes me wonder if I'm abusing something I shouldn't be abusing. What's going on with failed multiple unnest attempt?</p>