使用R,尝试循环一个函数,只解决最后一个值

时间:2014-09-10 19:41:46

标签: r function loops

在我开始之前:是的,这是R编程课程中的一个课程问题。我不是为了学分而上课。我只是想学习。

我正在尝试循环一个函数,但它不会!这让我疯了。这是我的代码:

complete <- function(directory, id = 1:322){
numbered_files <- list.files(directory, full.names=TRUE)
dat <- data.frame()

for (i in id){
        framework <- read.csv(numbered_files[i])
        sul <- framework[,"sulfate"]
        true_sul <- complete.cases(sul)+0
        t_f_array <- true_sul
        summed_s <- sum(t_f_array)
    }
    answer <- data.frame(id=id, nobs=summed_s)

    print(answer)
}

所以我在这里是我的思考过程: 我的循环函数读取所有文件。当我为一组值输入一组值时,比如说1:3。它应该执行所有函数并为文件1,2和3生成一个值。然后我可以将它附加到数组中。但是,我得到这样的答案:

> complete("specdata", 1:3)
  id nobs
1  1  243
2  2  243
3  3  243

它只解决第3个文件并重复。我理解R将适合“nobs”列与1:3行,所以它们都是243.但为什么它不能解决1和2?

0 个答案:

没有答案