#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, мой обходной путь состоит из двух шагов:
- В глобальной среде я сохраняю все объекты в файле с помощью функции сохранить()
- В коде 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")