【问题标题】:The error `Error: unexpected '}' in "}"` [closed]错误`错误:“}”中的意外'}'[关闭]
【发布时间】:2016-10-18 20:45:25
【问题描述】:

我有代码

    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 "}"。然而,} 的一切似乎都很完美,但我没有错。谁能告诉我我的错误在哪里?

【问题讨论】:

  • 你真的在使用 rstudio 吗?如果是,问题应该很明显。还将您的代码复制并粘贴回 rstudio,它会为您进行所有适当的缩进并显示括号的开始和结束位置
  • 是的,但即使使用正确的操作,我也得到了同样的错误
  • 取出! =的空间。

标签: r


【解决方案1】:

问题似乎在这里:sieve &lt;- c(sieve[(sieve %% i) ! = 0], i)。我假设你想要“不等于”,所以应该是sieve &lt;- 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.")
  }
}

【讨论】:

    【解决方案2】:

    我不知道 R,也无法判断您的代码,但您的内部 IF 语句中不是缺少括号吗?

    像这样:

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

    【讨论】:

    • 大声笑,我会说同样的话。这就是正确缩进很重要的原因。
    • 对不起,但即使在那之后我也遇到了同样的错误
    猜你喜欢
    • 1970-01-01
    • 2015-02-18
    • 2023-03-16
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 2018-04-24
    • 2014-04-02
    • 2011-10-26
    相关资源
    最近更新 更多