title: Collapse all columns by an ID column
body: <p>I'm trying to do something similar to <a href="https://stackoverflow.com/questions/9857787/collapse-columns-by-grouping-variable-in-base">what's answered here</a>, which gets me 80% of the way. I have a data frame with one ID column and multiple information columns. I'd like to roll up <strong>all</strong> of the other columns so that there's only one row for each ID, and multiple entries are separated by, for instance, a semicolon. Here's an example of what I have and what I want.</p>
  
  <p>HAVE:</p>
  
  <pre><code>     ID  info1          info2
  1 id101    one          first
  2 id102   twoA second alias A
  3 id102   twoB second alias B
  4 id103 threeA  third alias A
  5 id103 threeB  third alias B
  6 id104   four         fourth
  7 id105   five          fifth
  </code></pre>
  
  <p>WANT:</p>
  
  <pre><code>     ID          info1                          info2
  1 id101            one                          first
  2 id102     twoA; twoB second alias A; second alias B
  3 id103 threeA; threeB   third alias A; third alias B
  4 id104           four                         fourth
  5 id105           five                          fifth
  </code></pre>
  
  <p>Here's the code used to generate those:</p>
  
  <pre><code>have &lt;- data.frame(ID=paste0("id", c(101, 102, 102, 103, 103, 104, 105)),
                     info1=c("one", "twoA", "twoB", "threeA", "threeB", "four", "five"), 
                     info2=c("first", "second alias A", "second alias B", "third alias A", "third alias B", "fourth", "fifth"),
                     stringsAsFactors=FALSE)
  want &lt;- data_frame(ID=paste0("id", c(101:105)),
                     info1=c("one", "twoA; twoB", "threeA; threeB", "four", "five"), 
                     info2=c("first", "second alias A; second alias B", "third alias A; third alias B", "fourth", "fifth"),
                     stringsAsFactors=FALSE)
  </code></pre>
  
  <p><a href="https://stackoverflow.com/questions/9857787/collapse-columns-by-grouping-variable-in-base">This question</a> asked basically the same question, but only a single "info" column. I have multiple other columns and would like to do this for all of them. </p>
  
  <p>Bonus points for doing this using dplyr.</p>