R for for循环问题

时间:2014-07-17 07:32:21

标签: r for-loop vector

我是R的初学者,我正在做一些项目,并希望得到一些帮助。在这里,我将输入 pollutantmean(,"硝酸盐",70:72),输出应包含70,71和72个文件中所有硝酸盐值的平均值。我的文件名为001.csv,002.csv ..等等。所以我使用sprintf函数来获取它 这只是一个例子。我有超过300个文件,我想将每个for循环处理的输出存储到一个向量中并取其意义并显示它。但我无法得到它的平均值。

pollutantmean <- function(dir, pollutant, id) {
            dir <- getwd()
            cases <- NULL
            for(i in id){
                    csvfile <- sprintf("%03d.csv", as.numeric(i))
                    filepath <- file.path(paste(dir,"specdata",csvfile, sep="/"))
                    foo <- read.csv(filepath)
                    foo
                    if (pollutant == "sulfate") {                                
                            jar <- (foo$sulfate)
                    } else if (pollutant == "nitrate") {
                            jar <- (foo$nitrate)
                    }
                    cases[i] <- jar
            }
            foo1 <- mean(cases, na.rm=TRUE)
            print(foo1)    
    }

1 个答案:

答案 0 :(得分:0)

这个问题是关于Coursera的约翰霍普金斯大学R编程课程的作业问题。由于这是一项家庭作业,我们无法给您一个完整的答案,即显示工作代码的典型Stackoverflow.com答案。

那就是说,我会提供足够的信息让你自己修复这个功能。代码失败是因为cases[i] <- jar尝试将单个元素(例如id == 70)或cases[70]设置为具有多个元素的向量jar

考虑到编写代码的方式,请考虑使用组合函数c()cases向量与jar向量组合而不是cases[i] <- jar