coursera la pollution de l'air affectation
À l'aide de Mac OS 10.10.3
RStudio Version 0.98.1103
Mon répertoire de travail est une liste de 332 .les fichiers csv et je l'ai installé correctement. Voici le code:
pollutantmean <- function(directory, pollutant, id = 1:332) {
all_files <- list.files(directory, full.names = T)
dat <- data.frame()
for(i in id) {
dat <- rbind(dat, read.csv(all_files[i]))
}
ds <- (dat[, pollutant], na.rm = TRUE)
mean(ds[, pollutant])
}
Partie de la mission est d'obtenir la moyenne des 10 premières valeurs numériques d'un polluant. Pour ce faire, j'ai utilisé la fonction d'appel (où "spectata" est le répertoire avec 332 .les fichiers csv):
pollutantmean(specdata, "Nitrate", 1:10)
Les messages d'erreur que je reçois sont:
**Erreur dans le fichier(fichier, "rt") : impossible d'ouvrir la connexion
** En plus: le message d'Avertissement: Dans le fichier(fichier, "rt") : impossible d'ouvrir le fichier 'NA': Aucun fichier ou répertoire de
Comme de nombreux élèves qui ont posé des questions ici, je suis nouveau à la programmation et à la R et encore lointaine d'obtenir des résultats lors de l'appel de ma fonction. Il y a beaucoup de questions et réponses à propos de cette coursera affectation dans le débordement de la pile, mais mon examen de ces échanges n'a pas abordé le bug dans mon code.
Que quelqu'un a une suggestion comment corriger le bug?
OriginalL'auteur Elptigre | 2015-04-24
Vous devez vous connecter pour publier un commentaire.
En plus des autres réponses, vous pouvez essayer ceci:
pour éviter de sélectionner n'importe quel autre type de fichier.
ou encore cette étrange
OriginalL'auteur UberKaeL
Je prends le temps de répondre car la question revient à chaque Coursera session.
Tout d'abord, attention à la faute de frappe : Faire appel
pollutantmean("specdata", "Nitrate", 1:10)
au lieu depollutantmean(specdata, "Nitrate", 1:10
.Alors votre répertoire de travail doit être le répertoire parent de specdata" (par exemple, si votre chemin est /dev/specdata, votre répertoire de travail doit avoir été /dev).
Vous pouvez obtenir le répertoire de travail en cours avec
getwd()
et définir la nouvelle avecsetwd()
(attention là, le chemin est relatif au répertoire de travail courant).OriginalL'auteur tomsihap
Ajouter une ligne après
all_files <- list.files(directory, full.names = TRUE)
(c'est une mauvaise habitude d'utiliserT
au lieu deTRUE
):Appeler la fonction, il vous permettra de voir le contenu de cet objet. Ensuite, vérifiez où en êtes-vous de travail avec
getwd()
.OriginalL'auteur Ricardo Oliveros-Ramos
Modifier votre ligne. 5 à
dat <- rbind(dat, read.csv(i, comment.char = ""))
Cela permettra de lier les données de tous les fichiers csv 'dat' dataframe.
OriginalL'auteur parth
Sur la base des informations fournies, il peut être présumé, il n'y a pas de 332 fichiers dans le répertoire que vous indiquez (si l'on tente d'accéder à un index d'un vecteur qui est en dehors des limites, NA est retourné d'où le message d'erreur "impossible d'ouvrir le fichier 'NA'"). C'est suggestive que le chemin d'accès que vous utilisez (qui n'est pas fourni) pointe vers un répertoire qui ne contient pas les fichiers csv (en supposant qu'il y en a vraiment 332 les fichiers dans ce répertoire). Quelques suggestions:
OriginalL'auteur copeg