【问题标题】:rmarkdown error "attempt to use zero-length variable name"rmarkdown 错误“尝试使用零长度变量名”
【发布时间】:2017-09-12 08:20:59
【问题描述】:

当我生成一个新的 rmarkdown 文件(或打开现有的 rmarkdown 文件)并尝试运行 rmarkdown 块时,我收到此错误:“错误:尝试使用零长度变量名”。 我有 Win10,昨天重新安装了 R 和 Rstudio。我错过了什么?这个错误是从哪里来的?

```{r cars}
summary(cars)
```

```{r 车} 错误:尝试使用零长度变量名

【问题讨论】:

  • 无法使用knitr_1.17 和 windows 10 重现问题
  • 我会这样问的。该代码是任何新 rmarkdown 文件中的默认代码,直到昨天,它在我的机器上运行良好。我没有解释这个错误是从哪里来的。
  • 注销时是否保存全局环境。可能,它会污染环境。尝试data(cars),然后执行summary(cars)
  • 您说当您使用data(cars) 时,它有效吗?在这种情况下,可能是在全局环境中保存的问题。

标签: r r-markdown


【解决方案1】:

将此作为可见性的答案:如果您尝试通过在 Rmd 中选择所有并按 Enter 键来运行,就像使用普通 R 脚本一样。 RStudio 尝试将这一切都作为 R 代码运行,包括降价部分,这会导致您看到的错误。

您可以通过单击绿色播放按钮或在 Rmd 编​​辑器顶部的下拉菜单中选择一个运行选项来运行单个块来避免这种情况。

【讨论】:

  • ctrl+shift+enter(光标定位在块中的任何位置)如果先保存为 .Rmd 将运行整个代码块。
【解决方案2】:

对我来说,问题是我在结束代码块中缺少反引号。换句话说,它看起来像下面这样(注意只有两个结束反引号,而不是应该有的三个)。

```{r}
# do some stuff
``

所以这两个反引号作为代码块的一部分被处理,这是提供变量名称的合法代码,例如,

`+`

但由于在反引号之间没有提供变量名,我收到“尝试使用零长度变量名”错误。

【讨论】:

    【解决方案3】:

    问题可能是由于在较早的会话中在全局环境中更改了对象,并且该会话已保存在全局环境中。最好不要在全局环境中保存任何内容,同时结束 Rstudio 会话(或 R 控制台)。一种选择是再次调用data(cars),以便我们获得原始数据集

    ---
    title: "Untitled"
    output:
      html_document: default
      'html_document:': default
    ---
    
    ```{r setup, include=FALSE}
    knitr::opts_chunk$set(echo = TRUE)
    ```
    
    ```{r cars}
    data(cars)
    summary(cars)
    

    -输出

    避免此类意外的一种方法是在退出会话时使用“不保存”选项

    【讨论】:

    • 谢谢。我刚刚意识到,如果我选择行并运行它们,它就会出现,但如果我单击绿色箭头运行当前块,它不会出现。
    【解决方案4】:

    我得到了同样的信息,我的错误是在一个块代码中有四个反引号

    【讨论】:

      【解决方案5】:

      我的 R Studio 中有以下代码来抑制一些警告。我想做的是隐藏所有可能的输出但仍然评估代码,例如隐藏文本输出(results='hide')、隐藏警告、隐藏消息

      ```{r message=FALSE, warning=FALSE, results='hide'}
      

      当我摆脱这些行时,我也不再收到错误了。

      希望对您有所帮助。

      我仍然遇到同样的错误,你能帮忙吗?我正在尝试从https://github.com/timchurches/blog/blob/master/_posts/2020-02-18-analysing-covid-19-2019-ncov-outbreak-data-with-r-part-1/analysing-covid-19-2019-ncov-outbreak-data-with-r-part-1.Rmd 复制伊朗的代码。

      【讨论】:

        【解决方案6】:

        这种方法涉及仅选择(突出显示)R 代码(摘要(压力)),而不是代码块中的任何反引号/栅栏。 (如果您看到错误:尝试使用零长度变量名,那是因为您不小心将反引号与 R 代码一起突出显示......来源:https://rstudio-conf-2020.github.io/r-for-excel/rstudio.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-02
          • 2022-06-13
          • 2022-07-08
          • 2020-10-30
          • 2011-07-26
          • 1970-01-01
          相关资源
          最近更新 更多