For循环答案与正确答案不匹配。两个回路之间的差异不明';工作
我正在学习课程R编程课程。我做的作业问题如下: 编写一个名为“PollutanMean”的函数,用于计算指定监控器列表中污染物(硫酸盐或硝酸盐)的平均值。函数“pollutantmean”有三个参数:“目录”、“污染物”和“id”。给定一个矢量监控器ID号,“pollutantmean”从“directory”参数中指定的目录读取监控器的“颗粒物数据”,并返回所有监控器的污染物平均值,忽略任何编码为NA的缺失值 此问题的数据集如下所示: 我得到的第一个循环的答案是3.8383,而第二个循环的正确答案是4.064。我无法找到发生的差异,因为在第一个函数中进行了细分。我的调试说,它应该给出与函数2中显示的iv在函数1中完成的子集后相同的行数。但情况有所不同 职能1For循环答案与正确答案不匹配。两个回路之间的差异不明';工作,r,for-loop,functional-programming,R,For Loop,Functional Programming,我正在学习课程R编程课程。我做的作业问题如下: 编写一个名为“PollutanMean”的函数,用于计算指定监控器列表中污染物(硫酸盐或硝酸盐)的平均值。函数“pollutantmean”有三个参数:“目录”、“污染物”和“id”。给定一个矢量监控器ID号,“pollutantmean”从“directory”参数中指定的目录读取监控器的“颗粒物数据”,并返回所有监控器的污染物平均值,忽略任何编码为NA的缺失值 此问题的数据集如下所示: 我得到的第一个循环的答案是3.8383,而第二个循环的正
pollutantmean<-function(directory, pollutant, id=1:332){
file_list<-list.files(directory, full.names=TRUE)
dat<-data.frame()
mean_select_pol<-c()
for(i in 1:332){
dat<- rbind(dat, read.csv(file_list[i]))
}
select_pol<-dat[which(dat[,"ID"]==id), ]
mean_select_pol<-mean(select_pol[, pollutant], na.rm=TRUE)
mean_select_pol
}
pollutantmean尽管我无法通过提供的数据/函数获得与您相同的答案,无论我选择了哪种污染物。然而,通过纠正几个问题,我能够实现这两个功能。你的第一行是select_polies,但我没有得到答案,所以我不得不发布它。我正处于学习阶段,没有得到答案会让人信心崩溃。好的,谢谢你的澄清。Akrun你能看一看并帮我解决这个问题吗?正确的做法是编辑你原来的问题以澄清问题,然后要求重新打开。这行应该做什么select_pol感谢我几个小时来一直渴望得到的解释。非常感谢。
pollutantmean <- function(directory, pollutant, id = 1:332) {
files <- list.files(directory, full.names=TRUE)
dat <- data.frame()
for(i in id)
{
dat <- rbind(dat, read.csv(files[i]))
}
mean_data <- mean(dat[,pollutant], na.rm = TRUE)
round(mean_data, digits=3)
}
pollutantmean<-function(directory, pollutant, id=1:332){
file_list<-list.files(directory, full.names=TRUE)
dat<-data.frame()
mean_select_pol<-c()
for(i in id){
dat<- rbind(dat, read.csv(file_list[i]))
}
mean_select_pol<-mean(dat[, pollutant], na.rm=TRUE)
mean_select_pol
}