R if()语句中的任何内容都不起作用

R if()语句中的任何内容都不起作用,r,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"), ".

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

corr一个可重复的示例会使这变得更容易,但一个问题是您的
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
}