错误“错误:意外'}' in"}"`

时间:2016-10-18 20:45:26

标签: r

我有一个代码

    Eratosthenes <- function(n) {
  if (n >= 2) {
    sieve <- seq(2,n)
    primes <- c() 
    for (i in seq(2,n)) {
      if (any(sieve == i)) {
        primes <- c(primes, i)
        sieve <- c(sieve[(sieve %% i) ! = 0], i)
      }
    }
    return(primes)
} else {
  stop("Input value of n should be at least 2.")
    }
}

错误Error: unexpected '}' in "}"。但是,}的一切似乎都很完美,但我没有错。谁能告诉我我的错误在哪里?

2 个答案:

答案 0 :(得分:1)

我不知道R和我不能判断你的代码,但你的内部IF语句中是否缺少括号?

像这样:

for (i in seq(2,n)) {
      if (any(sieve == i)) {
            primes <- c(primes, i)
            sieve <- c(sieve[(sieve %% i) != 0], i)
        }
}

答案 1 :(得分:1)

问题似乎在这里:sieve <- c(sieve[(sieve %% i) ! = 0], i)。我假设你想要&#34;不等于&#34;,所以应该是sieve <- c(sieve[(sieve %% i) != 0], i)

以下是适用于我的格式化代码:

Eratosthenes <- function(n) {
  if (n >= 2) {
    sieve <- seq(2,n)
    primes <- c() 
    for (i in seq(2,n)) {
      if (any(sieve == i)) {
        primes <- c(primes, i)
        sieve <- c(sieve[(sieve %% i) != 0], i)
      }
    }
    return(primes)
  } else {
    stop("Input value of n should be at least 2.")
  }
}