假设我在 R 脚本“Carsplot.R”中保存了一个虚拟图
library(tidyverse)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy))
然后是我正在写的一篇论文的一个单独的 RMarkdown 文件,我想在不使用任何代码的情况下调用“汽车plot.R”脚本中的绘图。看起来像这样:
---
title: "Test"
author: "XYZ"
date: "`r Sys.Date()`"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
然后是一些解释性文本,后面是一段代码块,内容如下:
```{r, include = FALSE}
source("Cars plot.R")
```
我从 R Markdown Cookbook 获取该代码。
我读取错误:
Warning in file(filename, "r", encoding = encoding) :
cannot open file 'Cars plot.R': No such file or directory
Error in file(filename, "r", encoding = encoding) :
cannot open the connection
这是我的工作目录的问题吗?我没有在脚本中设置任何内容。 RMarkdown 文件的结构如下:
C:/Documents/Project
<- it's in this folder.
脚本位于另一个文件夹中,如下所示:
C:/Documents/Project/Codes
<- it's in the codes folder.
或者我是否使用
source()
错误地调用了它 // 需要添加更多内容才能使绘图可见?
编辑:
工作目录出现问题,将.Rmd和.R文件放入同一文件夹即可解决。
然后我需要将 ggplot 代码分配给一个对象,即
plot1 <- ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy))
另外,按照 dcsuka 的建议,我将块分成两部分,因此 .Rmd 文件代码...
```{r, include = FALSE}
source("Cars plot.R")
```
然后在一个单独的块中:
```{r, echo = FALSE}
plot1
```
最终结果是我在输出中绘制了图,没有任何代码。
工作目录出现问题,将.Rmd和.R文件放入同一文件夹即可解决。
然后我需要将 ggplot 代码分配给一个对象,即
plot1 <- ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy))
另外,按照 dcsuka 的建议,我将块分成两部分,因此 .Rmd 文件代码...
```{r, include = FALSE}
source("Cars plot.R")
```
然后在一个单独的块中:
```{r, echo = FALSE}
plot1
```
最终结果是我在输出中绘制了图,没有任何代码。