Я хочу, чтобы вычислить среднее значение столбца всех CSV в одном каталоге, но при запуске функции он дает мне ошибкуInvalid «длина» Аргумент ошибки
«Ошибка в числовой (НЗ) : неверный аргумент length.
Я считаю, что файлы CSV имеют значение n/a, но это не должно влиять на вычисление числа столбцов?
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
}
Так вот моя версия для обновления. Я установил R, чтобы прочитать все .csv в один файл, используя «lapply». Все эти csv-файлы имеют согласованное имя от 001 до 1xxx и т. Д. Поэтому я устанавливаю идентификатор от 001 до любого раза.
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
}
Я пытался calcuate средних значений загрязнителя accross всего каталог со всеми CSV в одном файлах. Я намерен удалить все недостающие значения, используя «na.rm = removeNA». Но это дает мне ошибку Ошибки в числовом (пс, na.rm = removeNA): неиспользуемый аргумент (na.rm = removeNA)
Вы можете по крайней мере попытаться выполните некоторую отладку самостоятельно. Вставьте выражения 'print' перед вызовом' ncol'. Аргумент 'na.rm' является логическим, поэтому должен быть' TRUE' 'FALSE', а не' removeNA'. Но почему бы вам не использовать встроенную функцию 'colMeans'? – Bhas
@Bhas. Я должен был более внимательно изучить список аргументов: 'removeNA' является аргументом функции! – Bhas
Просто «означает» означает <- sapply (загрязнитель, функция (x) означает (x, na.rm = T)) ' –