在我开始之前:是的,这是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?