knitr:编译我的.Rnw文件时,为什么在“环境”面板中什么都没出现

时间:2019-04-26 12:47:22

标签: r rstudio 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),以及图本身和打印语句。

我的问题是:为什么在Rstudio中只运行.R脚本时,为什么在“环境”面板中却没有像通常那样看到“ df”?显然,R在代码块中运行代码并生成PDF。那么为什么环境中什么也没有。如果我“手动”运行.Rnw文件中的R代码,则在环境中确实会获得“ df”。

我想念什么吗?我知道这并不重要,因为我的代码仍在技术上运行,但是我发现Rstudio在环境中不显示任何内容是有道理的。有这个原因吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

在RStudio中单击Compile PDF来编织Rnw文件的通常方法是在独立的R进程中完成该操作。您的文档不会在工作空间中看到局部变量,并且在文档中创建的变量不会持续进行处理。

有多种方法可以更改此设置。如果您在R控制台中明确编织该过程,例如

knitr::knit2pdf("file.Rnw")

然后它将能够看到您本地工作空间中的变量,但是所做的更改不会被保存。要保存结果,请使用

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

表示在全局环境(即您的工作空间)中评估代码。