title: Extracting string of irregular lengths : Unknown number of Authors from Citations
body: <p>From <em>Web of Science</em> I have downloaded 500 articles citations in a <a href="https://github.com/fxml/Files/blob/master/Space.txt" rel="nofollow">textfile</a>. Only the Authors' column (AU) have been read into R. The variable contains Author1 to AuthorN separeted by semicolons: </p>
  
  <blockquote>
    <p>Anselin, L; Fujita, M; Thisse, JF</p>
  </blockquote>
  
  <p>I would like to extract Author1, Author2, Author3...AuthorN in different columns. In my file I have up to 10 Authors. In this sample max 7 Authors:</p>
  
  <pre><code> #Sample of Data
      data &lt;- c("Anselin, L; Varga, A; Acs, Z",
      "Acs, ZJ; Anselin, L; Varga, A",
      "Anselin, L",
      "Fujita, M; Thisse, JF",
      "Turner, RK; van den Bergh, JCJM; Soderqvist, T; Barendregt, A; van der Straaten, J; Maltby, E; van Ierland, EC",
      "Talen, E; Anselin, L",
      "Irwin, EG; Bockstael, NE",
      "Leggett, CG; Bockstael, NE",
      "Guimaraes, P; Figueiredo, O; Woodward, D",
      "Halpern, Benjamin S.; McLeod, Karen L.; Rosenberg, Andrew A.; Crowder, Larry B.")
  </code></pre>
  
  <p>I have tried many avenues:</p>
  
  <pre><code>      #Method3 - Read table : Not same amount of elements
              Meth3 &lt;- read.table(textConnection(data), sep=";", stringsAsFactors=FALSE)
  
        #Method2 - Separate in different column : repeats the Names
          Meth2 &lt;- do.call(rbind, 
                            strsplit(gsub(";", 
                                          "\\1NONSENSESPLIT\\2NONSENSESPLIT\\3", data),
                                     "NONSENSESPLIT"))
  
  
        #Method5 - Split row entries, make an identifier and recombine them later : Struggle to recombine
          Meth5 &lt;- strsplit(data, ";")
          i &lt;- 0
          id &lt;- unlist( sapply( Meth5, function(r) rep(i&lt;&lt;-i+1, length(r) ) ) )
          x &lt;- unlist(Meth5, recursive = FALSE )
  
          x &lt;- list(do.call(rbind, 
                 strsplit(gsub(";", 
                               "\\1NONSENSESPLIT\\2NONSENSESPLIT\\3", x),
                          "NONSENSESPLIT")))
          require(data.table)
          data.table( ID=id, do.call(rbind,x))  
  
        #Method6: Identifies first Author :
          Meth6 &lt;- gsub("[^a-zA-Z0-9 ]","",strsplit(data,"\\; ")[[1]][[1]])
  </code></pre>
  
  <p>Any suggestions for organizing and identifying the Authors1...AuthorsN is warmly welcomed.</p>