2010-12-02 12 views
5

मैं प्लीयर पैकेज से **ply फ़ंक्शन, ldply में पंक्ति/कॉल आउटपुट नामों को बताना चाहता हूं।मैं प्लीयर से ** प्लाई फ़ंक्शंस की आउटपुट पंक्तियों/कोल्स का नाम कैसे बदल सकता हूं?

उदाहरण के लिए

,

मैं एक सूची, foo है, कि मैं एक data.frame में बदल जाएंगे और signif()

foo <- list(var.a = runif(3), var.b = runif(3), var.c=runif(3)) 

साथ महत्वपूर्ण अंक काट-छांट क्या मैं अब करना चाहते हैं

q <- ldply(foo, signif, 2) 
colnames(dq)[1] <- c('id', 'q1', 'q2','q3') 
rownames(dq) <- dq$id 
है

क्या कोई आसान तरीका है?

दो पिछले प्रश्नों ने पूछा है कि प्लीयर का उपयोग करके rows और cols का नाम बदलने के लिए प्लीयर का उपयोग कैसे करें, लेकिन मुझे लगता है कि मेरा प्रश्न अलग है। क्या नाम एक ही कार्य के रूप में एक ही समय में कहा जा सकता है (या यदि मैं इसे सही तरीके से कर रहा हूं)? क्या यह एक सार्थक सुविधा अनुरोध है?

उत्तर

6

आप नाम कहीं देना है, या तो समारोह पर

R> ldply(foo, function(l) c(a=signif(l[1], 2), b=signif(l[2], 2), 
+       c=signif(l[3], 2))) 
    .id a b c 
1 var.a 0.50 0.72 0.27 
2 var.b 0.82 0.38 0.24 
3 var.c 0.13 0.27 0.81 
R> 

में जैसे के रूप में अंदर बुलाया जा रहा है या आप कॉल के बाद किया गया है।

अज्ञात कार्यकर्ता फ़ंक्शन में स्पष्ट रूप से एक-पंक्ति data.frame बनाने के लिए मैं एक और विकल्प का उपयोग करता हूं। *dply() एट अल तो बस इन्हें एक data.frame में एकत्रित किया गया। यह मेरे स्वाद के लिए काफी अच्छा काम करता है।

+0

क्या आप अपने विकल्प 2 का एक उदाहरण पोस्ट करना चाहते हैं? यह उपयोगी लगता है, लेकिन मैं समझ में नहीं आता कि यह कैसे काम करेगा। धन्यवाद। – kmm

+0

उदाहरण के लिए मेरा पुराना उत्तर यहां देखें: http://stackoverflow.com/questions/3277326/group-by-in-r-ddply-with-weighted-mean और सामान्य रूप से, फ़ॉर्म की खोजों को आजमाएं "[आर] कभी-कभी" StackOverflow पर आर टैग के भीतर 'कभी-कभी' देखने के लिए। मैंने अभी 'डीडीप्ली' के लिए किया था और पहले दो हिट विजेता थे। –

+0

धन्यवाद। मैंने इसी तरह के उत्तर के लिए एसओ खोजना नहीं सोचा था। – kmm

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