if()语句中没有任何内容可以正常工作

时间:2016-03-08 16:48:06

标签: r

我在弄清楚为什么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)
}

1 个答案:

答案 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
}