Saya melakukan analisis yang relatif sederhana yang telah saya masukkan ke dalam suatu fungsi, pada semua file dalam folder tertentu. Saya bertanya-tanya apakah ada yang punya tip untuk membantu saya mengotomatiskan proses pada sejumlah folder yang berbeda.
- Pertama, saya bertanya-tanya apakah ada cara membaca semua file dalam folder tertentu langsung ke R. Saya yakin perintah berikut akan mencantumkan semua file:
files <- (Sys.glob("*.csv"))
... yang saya temukan dari Using R untuk mendaftar semua file dengan ekstensi tertentu
Dan kemudian kode berikut membaca semua file itu menjadi R.
listOfFiles <- lapply(files, function(x) read.table(x, header = FALSE))
… Dari Memanipulasi banyak file di R
Tetapi file tampaknya dibaca sebagai satu daftar terus menerus dan bukan file individual ... bagaimana saya bisa mengubah skrip untuk membuka semua file csv dalam folder tertentu sebagai kerangka data individu?
Kedua, dengan asumsi bahwa saya dapat membaca semua file secara terpisah, bagaimana cara menyelesaikan fungsi pada semua dataframe ini sekaligus. Misalnya, saya telah membuat empat kerangka data kecil sehingga saya dapat mengilustrasikan apa yang saya inginkan:
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)))
Saya juga membuat fungsi contoh:
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)}
Saya biasanya akan menggunakan perintah berikut untuk menerapkan fungsi ke setiap kerangka data individu.
Df1.summary <-Summary (dfile)
Apakah ada cara selain menerapkan fungsi ke semua dataframe, dan menggunakan judul dataframe di tabel ringkasan (mis. Df1.summary).
Terimakasih banyak,
Katie
plyr::llply
(atauldply
) alih-alihlapply
menyimpan nama di seluruh, dan menentukan fungsi ringkasan saya sendiri, misalnyaplyr::each(min, max, mean, sd, median)