-2
我要計算一個目錄中的所有CSV列的平均值,但是當我運行的功能它給我的無效的「長度」參數錯誤
「錯誤的錯誤數字(NC) :無效'長度'參數「。
我相信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通過使用「lapply」將所有.csv讀入一個文件。所有這些csv文件都具有從001到1xxx等的一致名稱。因此,我將ID從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
}
我試着計算一個文件中所有csv與整個目錄中污染物的平均值。我打算通過使用「na.rm = removeNA」來刪除所有缺失的值。但它給我的數字錯誤的錯誤(NC,na.rm = removeNA):未使用的參數(na.rm = removeNA)
你至少可以嘗試自己做一些調試。在調用ncol之前插入'print'語句。參數'na.rm'是一個邏輯,所以應該是'FALSE'的'TRUE'而不是'removeNA'。但爲什麼不使用內置函數colMeans? – Bhas
@Bhas。我應該仔細看看參數列表:'removeNA'是函數的一個參數! – Bhas
只要'意味着< - sapply(污染物,函數(x)平均值(x,na.rm = T))' –