2012-02-16 47 views
32

有一個列表,我希望將其作爲單個字符串輸出到excel文件中。 我從字符列表開始。如何將字符列表摺疊爲R中的單個字符串

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" 

所以我想通過管道或其它分離裝置分離一個不錯的字符串結束。 (最後一個代碼部分 - 我想重寫的很好)。管道很重要,必須妥善處理。

+1

你說的是人物的名單做這樣做(你甚至可以通過子集化'[[' )。如果'd'是一個字符列表,你也可以'do.call(「paste」,c(d,sep =「|」))''。 – 2012-02-16 16:14:29

回答

42

您可以paste功能

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

粘貼(types,collapse =「|」) – userJT 2012-02-16 16:03:53

4

您可以str_c功能

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