Ошибка rmarkdown попытка использовать имя переменной нулевой длины

Когда я создаю новый файл rmarkdown (или открываю существующие файлы rmarkdown) и пытаюсь запустить блок rmarkdown, я получаю следующую ошибку: «Ошибка: попытка использовать имя переменной нулевой длины». У меня Win10, и вчера я сделал новую установку R и Rstudio. Что я пропустил? Откуда эта ошибка?

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

`` `{r cars} Ошибка: попытка использовать имя переменной нулевой длины

введите описание изображения здесь


person SEMson    schedule 12.09.2017    source источник
comment
Невозможно воспроизвести проблему с помощью knitr_1.17 и windows 10   -  person akrun    schedule 12.09.2017
comment
Я бы так и спросил. Это код по умолчанию из любого нового файла rmarkdown, и до вчерашнего дня он хорошо работал на моей машине. У меня нет объяснения, откуда взялась эта ошибка.   -  person SEMson    schedule 12.09.2017
comment
Вы сохраняете глобальную среду при выходе из системы. Возможно, это могло загрязнить среду. Попробуйте data(cars), а затем выполните summary(cars)   -  person akrun    schedule 12.09.2017
comment
Вы говорите, что когда вы использовали data(cars), он работает? В этом случае может возникнуть проблема с сохранением в глобальном окружении.   -  person akrun    schedule 12.09.2017


Ответы (5)


В качестве ответа для наглядности: это произойдет, если вы попытаетесь запустить, выбрав все в Rmd и нажав Enter, как в обычном сценарии R. RStudio пытается запустить все это как код R, включая части уценки, что приводит к обнаруженным вами ошибкам.

Вы можете избежать этого, запустив отдельный блок, нажав зеленую кнопку воспроизведения или выбрав один из параметров запуска в раскрывающемся списке в верхней части редактора Rmd.

person Donovan192    schedule 14.02.2018
comment
ctrl + shift + enter (курсор находится в любом месте фрагмента) запустит весь фрагмент кода, если сначала сохранить его как .Rmd. - person val; 16.10.2018

Проблема могла быть из-за того, что объект был изменен в глобальной среде в более раннем сеансе, и этот сеанс был сохранен в глобальной среде. Лучше ничего не сохранять в глобальной среде при завершении сеанса 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)

-выход введите здесь описание изображения

Один из способов избежать подобных сюрпризов - использовать параметр «Не сохранять» при выходе из сеанса.

введите описание изображения здесь

person akrun    schedule 12.09.2017
comment
Спасибо. Я только что понял, что он появляется, если я выбираю строки и запускаю их, но этого не происходит, если я нажимаю зеленую стрелку для запуска текущего фрагмента. - person SEMson; 12.09.2017

Для меня проблема заключалась в том, что у меня отсутствовала обратная кавычка в закрывающем блоке кода. Другими словами, это выглядело так (обратите внимание, что закрывающих обратных кавычек всего две, а не три, как должно быть).

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

Таким образом, две обратные кавычки обрабатывались как часть блока кода, который является допустимым кодом для предоставления имени переменной, например,

`+`

Но поскольку между обратными кавычками не было указано имя переменной, я получал ошибку «попытка использовать имя переменной нулевой длины».

person dpritch    schedule 18.05.2020

В моей R Studio был следующий код для подавления некоторых предупреждений. Я хотел скрыть весь возможный вывод, но при этом оценить код, например, скрыть текстовый вывод (results = 'hide'), скрыть предупреждения, скрыть сообщения.

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

Когда я избавился от этих строк, я тоже перестал получать ошибку.

Надеюсь, это поможет.

Я по-прежнему получаю ту же ошибку, не могли бы вы помочь? Я пытаюсь скопировать код для Ирана из https://github.com/timchurch/blog/blob/master/_posts/2020-02-18-analysing-covid-19-2019-ncov-outbreak-data-with-r-part-1/analysis-covid-19-2019-ncov-outbreak-data-with-r-part-1.Rmd.

person Amit    schedule 14.09.2019

Этот подход включает в себя выбор (выделение) только кода R (сводка (давление)), а не любых обратных кавычек / ограждений из фрагмента кода. (Если вы видите ошибку: попытка использовать имя переменной нулевой длины, это потому, что вы случайно выделили обратные кавычки вместе с кодом R ........ source: https://rstudio-conf-2020.github.io/r-for-excel/rstudio.html

person Dr.Sundeep Deulkar    schedule 15.10.2020