错误'error:unexpected';}';在";}&引用`

错误'error:unexpected';}';在";}&引用`,r,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)

我有密码

    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.")
    }
}
Eratosthenes=2){

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

像这样:

for (i in seq(2,n)) {
      if (any(sieve == i)) {
            primes <- c(primes, i)
            sieve <- c(sieve[(sieve %% i) != 0], i)
        }
}
用于(序列(2,n)中的i){
如果(有(筛=i)){

primes问题似乎就在这里:
sieve lol,也会说同样的话。这就是为什么正确的缩进很重要。抱歉,即使在那之后,我也遇到了同样的错误。你真的在使用rstudio吗?如果是,问题应该很明显。同样,将代码复制并粘贴回rstudio,它会为你做所有正确的缩进并显示括号的开始和结束位置是的,但即使使用正确的操作,我也会出现相同的错误。请取出空格wthin
!=
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.")
  }
}