首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于循环答案不匹配正确的答案。两个回路工作的差异不明

对于循环答案不匹配正确的答案。两个回路工作的差异不明
EN

Stack Overflow用户
提问于 2015-08-12 21:16:54
回答 1查看 339关注 0票数 0

我正在修古瑟拉课程。我所做的作业问题如下:

编写一个名为“污染平均值”的函数,计算在指定的监视器列表中污染物(硫酸盐或硝酸盐)的平均值。函数“污染”包含三个参数:“目录”、“污染物”和“id”。给定矢量监视器ID号,“污染平均”读取“目录”参数中指定的目录中的“颗粒物质数据”,并在所有监视器中返回污染物的平均值,而忽略任何编码为NA的缺失值。

此问题的数据集如下:https://d396qusza40orc.cloudfront.net/rprog%2Fdata%2Fspecdata.zip

我得到第一个循环的答案为3.8383,而第二个给出正确的答案为4.064。我找不到差异的发生,因为减法,iv做了第一个函数。我的调试说,它应该给出与在函数2中出现的函数1中的iv相同的行数,但是有些地方是不同的。

职能1

代码语言:javascript
复制
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
}

职能2

代码语言:javascript
复制
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)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-12 21:53:41

尽管我无法得到与你相同的答案,但无论我选择哪种污染物,提供的数据/函数都是一样的。然而,我能够通过纠正几个问题来实现这两个功能。第一个是在select_pol<-dat[which(dat[,"ID"]==id), ]行中,您的id接受与==不兼容的多个值(与id中的第一个值相比较,因此发出警告);您实际上是将整个数据过滤为1的id值(我认为是第一个),因此平均值只表示其中的一个文件。相反,您应该使用select_pol<-dat[which(dat[,"ID"] %in% id), ],我认为它将完成您想做的事情(%in%将比较id中的所有值)。但是,我不知道这一行试图实现什么,您的id中的值与for循环中的i相同。如果id并不总是1:332,那么下面的代码将更高效,因为您不会加载所有332个文件,然后过滤掉一些文件

代码语言:javascript
复制
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
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31975570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档