Je suis en train de faire est relativement simple morceau de l'analyse que j'ai mis dans une fonction, sur tous les fichiers dans un dossier particulier. Je me demandais si quelqu'un a des conseils pour m'aider à automatiser le processus sur un certain nombre de différents dossiers.
- Tout d'abord, je me demandais si il y avait un moyen de lire tous les fichiers dans un dossier particulier directement dans R. je crois que la commande suivante répertorie tous les fichiers:
files <- (Sys.glob("*.csv"))
...que j'ai trouvé de l'Aide R à la liste de tous les fichiers avec une extension spécifiée
Et puis le code suivant lit tous les fichiers dans R.
listOfFiles <- lapply(files, function(x) read.table(x, header = FALSE))
...de la Manipulation de plusieurs fichiers dans la R
Mais les fichiers semblent être lu en une seule liste et non à des fichiers individuels... comment puis-je modifier le script pour ouvrir tous les fichiers csv dans un dossier particulier, individuel dataframes?
-
Deuxièmement, en supposant que je peux lire tous les fichiers séparément, comment dois-je remplir une fonction sur tous ces dataframes en une seule fois. Pour exemple, j'ai créé quatre petits dataframes afin que je puisse illustrer ce que je veux:
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)))
J'ai aussi fait un exemple de fonction:
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)}
Je serais normalement utilisez la commande suivante pour appliquer la fonction de chaque individu dataframe.
Df1.résumé<-Résumé(dfile)
Est-il possible au lieu de l'application de la fonction à tous les dataframes, et d'utiliser les titres de la dataframes dans les tableaux de synthèse (c'est à dire Df1.le résumé).
Merci beaucoup,
Katie