मैंने डेटा सेट की एक सूची में पढ़ा है और इसे एन कहा है। मैं क्या करना चाहता हूं एन और पंक्ति से डेटा सेट का सबसेट लेना आर में एक साथ बांधें। जब मैं rbind(n)
पर जाने का प्रयास करता हूं तो यह मुझे तत्वों को वास्तव में डालने के बजाय डेटा सेट के सभी नामों का डेटा फ्रेम देता है एक दूसरे के नीचे सेट प्रत्येक डेटा का। मैं जो करना चाहता हूं वह डेटा सेट के सबसेट को बाध्य करता है जो एक आम नाम साझा करते हैं। उदाहरण के लिए, डेटा सेटों में से 18 "4." से शुरू होते हैं और मैं इन सभी को एक साथ बांधना चाहता हूं। क्या इसे करने का कोई आसान तरीका है?पंक्ति डेटा सेट का एक सेट बाध्यकारी?
उत्तर
चाहे आप करना चाहते हैं rbind(n[[1]],n[[2]],...)
जो rbind(n)
जैसा नहीं है।
आप इस को लिखने की जरूरत नहीं है, आप बनाना do.call
का उपयोग करें और इस call
do.call(rbind, n)
जो आदेश आप चाहते हैं चलेंगे निष्पादित कर सकते हैं। हालांकि, इस notoriously slow
आप data.table
पैकेज से rbindlist
का उपयोग एक ही बात बहुत तेजी से
library(data.table)
rbindlist(n)
करने के लिए कर सकते हैं केवल उन तत्वों चाहते हैं जिसका नाम 4
rbindlist(n[grep(names(n), pattern = '^4')])
हैं के साथ शुरू है आप कई फाइलों को एकत्र करने का प्रयास करते हैं, आपको rbind.fill
फ़्लीर पैकेज में फ़ंक्शन की आवश्यकता हो सकती है (यदि डेटाटाटेबल समतुल्य है तो मुझे नहीं पता)
ll <- list(a=data.frame(x=1,y=2,z=1),
b= data.frame(x=2,y=3),
c=data.frame(x=3:4,y=5))
library(plyr)
Reduce(rbind.fill,ll[c('a','b')]) ## subset by list names and
## apply recursively using Reduce
x y z
1 1 2 1
2 2 3 NA
मुझे एक rbind.fill समकक्ष के बारे में पता नहीं है, लेकिन मैंने कुछ लागू किया http://stackoverflow.com/a/15017231/1385941 – mnel
बहुत बढ़िया धन्यवाद जो मैं चाहता हूं! अब मैं इसे सबसेट के लिए कैसे कर सकता हूं, "4." वाली फाइलें कहें वास्तव में बिना किसी नाम के अपने नाम में कहीं भी यह देखने के लिए कि उन फाइलों की सूची में कौन सी संख्याएं हैं? – user1836894
@ user1836894 क्या ये सूची के तत्वों के नाम हैं? – mnel
हां वे हैं। मेरे पास फाइलों की एक सूची है और वे फाइलों के सबसेट से संबंधित नाम हैं। – user1836894