Ошибка вязания. Объект не найден

#r #r-markdown

Вопрос:

У меня есть неочищенный набор данных. Итак, я импортировал его в свою R-студию.Затем, когда я запускаю nrow(adult) файл rmarkdown и нажимаю ctrl Enter , он работает, но когда я нажимаю knit , появляется следующая ошибка:’

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

Комментарии:

1. Попробуйте использовать rm(list = ls()) для очистки рабочей области, а затем создайте свой сценарий. Вероятно, вам не удается прочитать файл как часть вашего сценария.

2. но почему я управляю им с помощью фургона ctrl enter ?

3. Можете ли вы запустить его, ctrl enter если сначала очистите свою среду и запустите в своем сценарии только незафиксированные строки? Когда knitr запускается, он работает в чистой среде. То есть он игнорирует все в вашем рабочем пространстве и создает свое собственное новое.

Ответ №1:

Когда вы knit что-то делаете, это выполняется в новой среде.
Объект adult в данный момент находится в вашей среде, но не в новой, которую создает knit.

Вы, вероятно, не включили код для чтения или загрузки adult в вязание.

Если вы очистите свое рабочее пространство, согласно комментарию @sebastian-c, вы увидите, что даже ctrl enter это не работает.

Вы должны создать adult объект внутри вашего knit . Например, если ваши данные из csv-файла добавляются

 adult lt;- read.csv2('Path/to/file')  

в первом куске.

Надеюсь, это достаточно ясно.

Комментарии:

1. Я сделал Файл -gt; Импорт набора данных -gt;gt; Из CSVgt;gt; Итак, у меня есть взрослый в окне глобальной среды. Разве этого недостаточно? Как я могу добавить его в свою вязаную среду?

2. adult lt;- read.csv2('path/to/file') ознакомьтесь ?read.csv2 с его опциями

Ответ №2:

Поскольку обычно у меня много кода, который подготавливает переменные данных, эффективно используемые в документах knitr, мой обходной путь состоит из двух шагов:

  1. В глобальной среде я сохраняю все объекты в файле с помощью функции сохранить()
  2. В коде knitr я загружаю объекты из файла с помощью load()

Это не так элегантно, но это единственное, что я нашел.

Я также пытался получить доступ к глобальным переменным среды с помощью оператора get (), но безуспешно

Ответ №3:

Еще один вариант, такой же, как и предыдущий, но действительно полезный в случае, если у вас много разных данных

Как только у вас будут все ваши данные, сгенерированные из ваших R-сценариев, напишите свой «обычный код» ( любой из ваших R-сценариев):

 save.image (file = "my_work_space.RData")  

А затем в вашем сценарии R-Markdown загрузите изображение сохраненных ранее данных и необходимые вам библиотеки.

 ```{r , include=FALSE} load("my_work_space.RData") library (tidyverse) library (skimr) library(incidence) ```  

ПРИМЕЧАНИЕ: Обязательно сохраните свои данные после любых изменений и перед запуском knitr.

Ответ №4:

Если вы добавили eval = FALSE более ранний код R, не будет выполняться код, в котором вы создали свой объект.

Поэтому, когда вы снова используете этот объект в другом фрагменте, он завершится ошибкой с сообщением «объект не найден».

Ответ №5:

При вязании в PDF

 ```{r setup} knitr::opts_chunk$set(cache =TRUE) ```  

Сработало отлично.

Но не тогда, когда вяжешь на Слово.

Ответ №6:

Я передаю в слове. Вот что, наконец, загрузило мои данные из каталога документов по умолчанию. Я поместил это в первую строку моего первого фрагмента.

 load("~/filename.RData")