我在做coursea的作业的时候发现如果我用mean求的答案跟用普通的数学公式求的均值不同,大神能帮我看看哪里出错了吗,以下是两个程序:红色部分就是有疑问的地方,根据答案来看,第二个程序的答案才是对的
pollutantmean<- function(directory, pollutant, id=1:332) {
total=0
observations=0
for (i in id){
if (i<10){
data<-read.csv(paste("0","0",as.character(i),".csv",sep=""),
header =TRUE,
na.strings=c("NA","NaN","")
)
}
else if (i>=10 & i<100) {
data<-read.csv(paste("0",as.character(i),".csv",sep=""),
header =TRUE,
na.strings=c("NA","NaN","")
)
}
else {
data<-read.csv(paste(as.character(i),".csv",sep=""),
header =TRUE,
na.strings=c("NA","NaN",""))
}
data=na.omit(data)
observations = observations + nrow(data)
if (pollutant == "sulfate") { return(mean(data$sulfate))}
else {return(mean(data$nitrate))}
}
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
pollutantmean <- function(directory, pollutant, id = 1:332) {
total = 0
observations = 0
for (i in id)
{
if (i <10) {
data <- read.csv(paste("0","0", as.character(i), ".csv", sep=""), ## for example, if 'id' =7, we get 007.csv
header = T,
na.strings=c("NA","NaN", " "))
}
else if (i>=10 & i<100) {
data <- read.csv(paste("0", as.character(i), ".csv", sep=""), ## for example, if 'id' = 17, we get 017.csv
header = T,
na.strings=c("NA","NaN", " ")
)
}
else {
data <- read.csv(paste(as.character(i), ".csv", sep=""), ## Normal
header = T,
na.strings=c("NA","NaN", " ")
)
}
data = na.omit(data)
observations = observations + nrow(data)
if (pollutant == "sulfate") {total = total + sum(data$sulfate)}
else {total = total + sum(data$nitrate)}
}
return(total/observations)
}


雷达卡





京公网安备 11010802022788号







