2012-09-06 13 views
5

मैं अभी ddply का उपयोग कर रहा हूं। संख्याओं से निपटना बहुत आसान है। जैसे उपसमूह का मतलब या मानक विचलन लेना।ddply स्ट्रिंग ऑपरेशन सारांशित करें

लेकिन मुझे तारों से निपटने में कठिनाई है। मैं प्रत्येक उपसमूह में एक ही कॉलम में तारों को गठबंधन करना चाहता हूं, लेकिन मैं इसे नहीं कर सका। मैंने cbindpaste इत्यादि की कोशिश की, कोई भी कुछ मदद दे सकता है?

+2

एक ठोस, पुनरुत्पादित उदाहरण के बिना, नहीं, हम शायद अधिक सहायता प्रदान नहीं कर सकते हैं। – joran

+0

कृपया सहायता प्राप्त करने के लिए एक [पुनरुत्पादित उदाहरण] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) का उत्पादन करें ... – ptocquin

उत्तर

8

अपने पेस्ट बयान

ddply(mtcars, .(carb), summarize, cyl_concatenated = paste(cyl, collapse = "")) 
# carb cyl_concatenated 
#1 1   4664444 
#2 2  8444888444 
#3 3    888 
#4 4  6686688888 
#5 6    6 
#6 8    8 
5

करने के लिए collapse="" जोड़े मैं देख रहा हूँ Dason एक दृष्टिकोण है। मैं नहीं बल्कि अलग चीजों को अलग रखे हैं और सुझाव है:

ddply(mtcars, .(carb), summarize, cyl_list = list(as.character(cyl))) 
#----------- 
    carb      cyl_list 
1 1   4, 6, 6, 4, 4, 4, 4 
2 2 8, 4, 4, 4, 8, 8, 8, 4, 4, 4 
3 3      8, 8, 8 
4 4 6, 6, 8, 6, 6, 8, 8, 8, 8, 8 
5 6       6 
6 8       8 

तुम भी संशोधित कर Dason के पतन का उपयोग करने के = "," जो ऊपर के रूप में ही लगेगा लेकिन एक अलग संरचना के लिए होगा। list() के साथ उस उदाहरण का उपयोग करते समय आपको चरित्र में कनवर्ट करने की आवश्यकता है, या आपको कारक चर के पूर्णांक कोडिंग मिलते हैं।

संबंधित मुद्दे