Ich möchte den Mittelwert der Spalte aller csv in einem Verzeichnis berechnen, aber wenn ich die Funktion führen Sie es gib mir den Fehlerungültig ‚Länge‘ Argument Fehler
„Fehler in numerischer (nc) : ungültiges Argument 'length' ".
Ich glaube, dass CSV-Dateien n/a Wert haben, aber es sollte nicht die Berechnung der Anzahl der Spalte beeinflussen?
pollutantmean <- function(directory, pollutant, id =1:332, removeNA = TRUE){
nc <- ncol(pollutant)
means <- numeric(nc)
for(i in 1:nc){
means[i] <- mean(pollutant[, i], na.rm = removeNA)
}
means
}
Also hier ist meine Update-Version. Ich habe R gesetzt, um alle .csv in eine Datei zu lesen, indem ich "lapply" benutze. Alle diese CSV-Dateien haben den konsistenten Namen von 001 bis 1xxx usw. Also habe ich die ID von 001 bis wann eingerichtet.
files <- list.files(pattern = ".csv")
directory <- lapply(files, read.csv)
pollutantmean <- function(directory, pollutant, id =1:332, removeNA = TRUE){
nc <- ncol(pollutant)
means <- numeric(nc, na.rm=removeNA)
for(i in 1:nc){
means[i] <- mean(pollutant[, i], na.rm = removeNA)
}
means
}
Ich habe versucht, die Mittelwerte der Schadstoff accross das gesamte Verzeichnis mit allen csv in einer Dateien calcuate. Ich beabsichtige, alle fehlenden Werte zu entfernen, indem ich "na.rm = removeNA" verwende. Aber es gibt mir Fehler von Fehler in numerischer (nc, na.rm = removeNA): nicht verwendete Argument (na.rm = removeNA)
können Sie zumindest versuchen, Debuggen Sie selbst. Fügen Sie 'print' Anweisungen vor dem Aufruf von' ncol' ein. Das Argument 'na.rm' ist logisch und sollte' TRUE' von 'FALSE' sein und nicht' removeNA'. Aber warum benutzt du nicht die eingebaute Funktion 'colMeans'? – Bhas
@Bhas. Ich hätte mir die Argumentliste genauer anschauen sollen: 'removeNA' ist ein Argument der Funktion! – Bhas
Mache einfach 'bedeutet <- sapply (Schadstoff, Funktion (x) Mittelwert (x, na.rm = T))' –