web-dev-qa-db-ja.com

Rで文字のリストを単一の文字列にまとめる方法

単一の文字列としてExcelファイルに出力したいリストがあります。文字のリストから始めます。

  url="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=21558518&retmode=xml"
  xml = xmlTreeParse(url,useInternal = T)
  ns <- getNodeSet(xml, '//PublicationTypeList/PublicationType')  
  types <- sapply(ns, function(x) { xmlValue(x) } )  
  types

出力はこれです:

[1] "Journal Article"                      "Multicenter Study"                    "Research Support, N.I.H., Extramural"
[4] "Research Support, Non-U.S. Gov't"    

したがって、型には文字のリストがあります。今、私は単一の文字列にする必要があります。これは私がこれまで持っているものですが、最適ではありません:

 types_as_string = as.character(types[[1]])
      if (length(types) > 1) for (j in 2:length(types))   types_as_string = paste(types_as_string,"| ",as.character(types[[j]]),sep="")
 types_as_string          
 [1] "Journal Article| Multicenter Study| Research Support, N.I.H., Extramural| Research Support, Non-U.S. Gov't"

したがって、パイプまたはその他の区切り文字で区切られたニース文字列になりたいと思います。 (最後のコード部分-私がうまく書き直したいものです)。パイプは重要であり、適切に行う必要があります。

36
userJT

あなたはpaste関数でそれを行うことができます

    > paste(c('A', 'B', 'C'), collapse=', ' )
    [1] "A, B, C"
53
ilya

str_c関数で実行できます

> library('stringr')
> str_c(c('A','B','C'),collapse=',')    
[1] "A,B,C"
5
Chernoff