我在弄清楚为什么if()
语句中没有任何内容有效时会遇到很多麻烦。我从这里得到的只是一个值,或者根本没有值,我期待每次满足条件时都有一个具有多个值的向量。
corr <- function(directory, threshold = 0, a = 0) {
y <- vector()
for(i in 332) {
x <- read.csv(paste("D:\\", directory, "\\", formatC(i, width = 3, flag = "0"), ".csv", sep = ""))
z <- x[complete.cases(x),]
n <- cor(z$sulfate,z$nitrate)
if(nrow(z) > threshold) {
a <- a + 1
y[a] <- n
}
}
return(y)
}
答案 0 :(得分:2)
可重现的示例可以使这更容易,但一个问题是您的for
循环只运行一次。要查看简化示例
for (i in 332) {
print(i)
}
## [1] 332
尝试这种方式,实际上将循环遍历从1到332的所有值。
for (i in seq_len(332)) {
## the rest of your code here
}
或者
for (i in 1:332) {
## the rest of your code here
}