完全披露:我正在参加Coursera的数据科学课程。对于这个特殊问题,我们需要计算从多个文件中读取的一些污染物数据的平均值。
我需要帮助的主要功能还引用了我在脚本中编写的其他几个函数。为简洁起见,我将列出它们及其目的:
毕竟,我正在使用的主要功能是:
pollutantmean <- function(directory = "", pollutant, id = 1:332){
id <- boundIDs(id)
pollutant <- pollutantToCode(pollutant)
numberOfIds <- length(id)
fileList <- character(numberOfIds)
for (i in 1:numberOfIds){
if (id[i] > 332){
next
}
fileList[i] <- fullFilePath(directory, id[i])
}
data <- lapply(fileList, read.csv)
print(data[[1]][[pollutant]])
}
现在,我故意只打印第一帧数据,看看我的输出是什么样的。删除我尝试使用的NAs:
data <- lapply(fileList, read.csv)
data <- data[!is.na(data)]
但是NAs仍然存在,所以我尝试直接计算均值并使用na.rm参数:
print(mean(data[[1]][[pollutant]], na.rm = TRUE))
但是平均值仍然是&#34; NA&#34;。然后我尝试了na.omit:
data <- lapply(fileList, na.omit(read.csv))
......不幸的是问题仍然存在。
有人可以帮忙吗? : - /
(PS:现在我只是关注所读内容的第一帧,即数据[[1]],因为我认为如果我不能在第一帧获得它,那么&#39; #39;迭代其余部分毫无意义。)