knitr: почему при компиляции файла .Rnw на панели «среда» ничего не появляется - PullRequest
1 голос
/ 26 апреля 2019

Я новичок в Knitr.Я сделал тренировочный файл .Rnw с некоторыми очень простыми командами.Например:

\documentclass[12pt, a4paper]{article}

\usepackage[utf8]{inputenc} 
\usepackage{hyperref}
\hypersetup{
colorlinks   = true, %Colours links instead of ugly boxes
urlcolor     = blue, %Colour for external hyperlinks
linkcolor    = blue, %Colour of internal links
citecolor   = blue %Colour of citations
}
\usepackage{caption}
\captionsetup[figure]{labelfont=bf, labelsep=period}
\captionsetup[table]{labelfont=bf, labelsep=period}
\setlength{\parindent}{0pt}


\title{My very first LaTeX/knitr document!}
\date{April 2019}



\begin{document}

\maketitle

\begingroup
\hypersetup{linkcolor=black} % force independent link colours in table of    contents
\tableofcontents
\endgroup

\newpage

\section{Basics}

\subsection{Using no options}
First, let's try and a show a chunk of code along with a plot and print() message.

<<first-chunk>>=
# Make a simple dataframe:
setwd("/home/user/Documents/testing-area/knitr/")
df <- data.frame(A = c(1,2,3), B = c("A", "B", "C"))
plot(df$A,df$B)
print("hello")
@

Когда я нажимаю «Компилировать PDF», я получаю PDF со всем кодом (как я и ожидал, поскольку я не использовал echo = FALSE), а также с графикомсам и оператор печати. ​​

Мой вопрос : почему я не вижу "df" в Rstudio на моей панели "Environment", как вы "обычно", когда просто запускаете.R скрипт в Rstudio?Очевидно, что R запускает код в блоке кода и создает PDF.Так почему же в окружающей среде ничего нет?Если я запускаю код R в файле .Rnw «вручную», я получаю «df» в среде.

Я что-то упустил?Я знаю, что это на самом деле не имеет значения, так как мой код все еще технически выполняется, но я нахожу несомненным, что Rstudio ничего не показывает в среде.Есть ли причина для этого?

Спасибо.

1 Ответ

2 голосов
/ 26 апреля 2019

Обычный способ связать файл Rnw, нажав Compile PDF в RStudio, делает это в независимом процессе R.Ваш документ не увидит локальные переменные в вашем рабочем пространстве, а созданные в нем переменные не будут действовать дольше, чем обработка.

Есть способы изменить это.Если вы явно связали процесс в консоли R, например,

knitr::knit2pdf("file.Rnw")

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

knitr::knit2pdf("file.Rnw", envir = globalenv())

, который говорит, что для оценки кода в глобальной среде (то есть в вашем рабочем пространстве).

...