मैं एक अपेक्षाकृत सरल विश्लेषण कर रहा हूं, जिसे मैंने एक विशेष फ़ोल्डर में सभी फाइलों पर एक फ़ंक्शन में रखा है। मैं सोच रहा था कि क्या किसी के पास विभिन्न फ़ोल्डरों पर प्रक्रिया को स्वचालित करने में मेरी मदद करने के लिए कोई सुझाव था।
- सबसे पहले, मैं सोच रहा था कि क्या एक विशेष फ़ोल्डर में सभी फ़ाइलों को सीधे आर में पढ़ने का एक तरीका था। मुझे विश्वास है कि निम्नलिखित कमांड सभी फाइलों को सूचीबद्ध करेगी:
files <- (Sys.glob("*.csv"))
... जो कि मैंने आर का उपयोग करके एक निर्दिष्ट एक्सटेंशन के साथ सभी फाइलों को सूचीबद्ध करने के लिए पाया
और फिर निम्न कोड उन सभी फाइलों को आर में पढ़ता है।
listOfFiles <- lapply(files, function(x) read.table(x, header = FALSE))
... आर में कई फ़ाइलों को जोड़कर
लेकिन फ़ाइलों को एक निरंतर सूची के रूप में पढ़ा जाना चाहिए और व्यक्तिगत फ़ाइलें नहीं ... मैं किसी विशेष फ़ोल्डर में सभी डेटा फ़ाइलों को व्यक्तिगत डेटाफ्रेम के रूप में खोलने के लिए स्क्रिप्ट कैसे बदल सकता हूं?
दूसरे, यह मानते हुए कि मैं सभी फाइलों को अलग-अलग पढ़ सकता हूं, मैं इन सभी डेटाफ्रेमों को एक बार में कैसे पूरा कर सकता हूं। उदाहरण के लिए, मैंने चार छोटे डेटाफ़्रेम बनाए हैं ताकि मैं यह बता सकूं कि मुझे क्या चाहिए:
Df.1 <- data.frame(A = c(5,4,7,6,8,4),B = (c(1,5,2,4,9,1))) Df.2 <- data.frame(A = c(1:6),B = (c(2,3,4,5,1,1))) Df.3 <- data.frame(A = c(4,6,8,0,1,11),B = (c(7,6,5,9,1,15))) Df.4 <- data.frame(A = c(4,2,6,8,1,0),B = (c(3,1,9,11,2,16)))
मैंने एक उदाहरण समारोह भी बनाया है:
Summary<-function(dfile){
SumA<-sum(dfile$A)
MinA<-min(dfile$A)
MeanA<-mean(dfile$A)
MedianA<-median(dfile$A)
MaxA<-max(dfile$A)
sumB<-sum(dfile$B)
MinB<-min(dfile$B)
MeanB<-mean(dfile$B)
MedianB<-median(dfile$B)
MaxB<-max(dfile$B)
Sum<-c(sumA,sumB)
Min<-c(MinA,MinB)
Mean<-c(MeanA,MeanB)
Median<-c(MedianA,MedianB)
Max<-c(MaxA,MaxB)
rm(sumA,sumB,MinA,MinB,MeanA,MeanB,MedianA,MedianB,MaxA,MaxB)
Label<-c("A","B")
dfile_summary<-data.frame(Label,Sum,Min,Mean,Median,Max)
return(dfile_summary)}
मैं प्रत्येक व्यक्तिगत डेटाफ़्रेम पर फ़ंक्शन को लागू करने के लिए आमतौर पर निम्नलिखित कमांड का उपयोग करूंगा।
Df1.summary <-Summary (dfile)
फ़ंक्शन को सभी डेटाफ़्रेम पर लागू करने के बजाय एक तरीका है, और सारांश तालिका (यानी Df1.summary) में डेटाफ़्रेम के शीर्षक का उपयोग करें।
बहुत धन्यवाद,
केटी
plyr::llply(याldply) के बजायlapplyनामों को संरक्षित करने के लिए, और अपने स्वयं के सारांश समारोह को परिभाषित करूंगा, जैसेplyr::each(min, max, mean, sd, median)