आर

2012-02-16 9 views
32

में एक स्ट्रिंग में वर्णों की सूची को कैसे पतन करें एक ऐसी सूची है जिसे मैं एकल स्ट्रिंग के रूप में एक्सेल फ़ाइल में आउटपुट करना चाहता हूं। मैं पात्रों की एक सूची से शुरू करता हूं।आर

[1] "Journal Article"      "Multicenter Study"     "Research Support, N.I.H., Extramural" 
[4] "Research Support, Non-U.S. Gov't"  
प्रकार में

तो - वहाँ वर्ण अब मैं एक एकल स्ट्रिंग में बनाने की जरूरत है की एक सूची है:

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 

आउटपुट यह है। यह वही है मैं अब तक किया है, लेकिन यह इष्टतम नहीं है:

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

आप वर्णों की सूची के बारे में बात कर रहे हैं के साथ यह कर सकते हैं के साथ यह कर सकते हैं (आप भी माध्यम से subsetting रहे हैं '[[')। यदि 'd' वर्णों की एक सूची है, तो आप' do.call ("पेस्ट", सी (डी, sep = "|") भी कर सकते हैं) '। –

उत्तर

42

आप paste समारोह

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

पेस्ट (प्रकार, पतन = "|") – userJT

4

आप str_c समारोह

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