l'argument n'est pas numérique ou logique: le retour de NA dans la R
Je suis en train d'écrire une fonction pour calculer la moyenne d'une colonne. La fonction a les arguments répertoire et column_name. Cependant, je reçois le message d'erreur "argument n'est pas numérique ou logique: le retour de NA":
pollutantmean <- function(directory, pollutant) {
directoryVal <- directory
pollutantVal <- pollutant
pollutantData <- read.csv(directoryVal)
meanVal <- mean(pollutantData$pollutantVal, na.rm = TRUE)
}
Je l'ai appelé par:
pollutantmean("001.csv", "nitrate")
"nitrates" est l'un des noms de colonne.
Noter que les œuvres suivantes, donc je ne sais pas pourquoi il ne fonctionne pas dans ma fonction:
mydata <- read.csv("001.csv")
mean(mydata$nitrate, na.rm = TRUE)
S'il vous plaît aider. Je vous remercie.
OriginalL'auteur Trung Tran | 2014-11-11
Vous devez vous connecter pour publier un commentaire.
Vous devriez essayer
meanVal <- mean(pollutantData[pollutantVal], na.rm = TRUE)
, en effet votre bloc de donnéespollutantData
n'a pas toute la colonne d'appelpollutantVall
, de sorte que vous avezpollutantData$pollutantVal
qui estNULL
. Si vous wan pour l'accès à un bloc de données de la colonne à l'aide d'un personnage, vous devez utiliser les crochets.OriginalL'auteur Garnieje
Je voudrais ajouter une correction.
Il devrait en fait être
Note le
,
avant lapollutantVal
depuispollutantVal
est une colonne et doit être indexé en tant que tel.OriginalL'auteur vitalious