我一直在阅读关于R Markdown(here,here和here)并使用它来创建可靠的报告。我想尝试使用我正在运行的小代码进行一些临时分析,并将它们转换为更具伸缩性的数据报告。
我的问题相当广泛:是否有正确的方法来围绕R Markdown项目组织代码?比方说,有一个生成所有数据结构的脚本吗?
例如:我们说我有cars
数据集,并且我已经在制造商处引入了商业数据。如果我想将制造商附加到当前cars
数据集,然后使用操纵数据集cars.by.name
为每个公司生成单独的汇总表,并使用{{1绘制某个样本,该怎么办? }}?
编辑:现在我打开了两个文件。一个是具有所有数据操作的R脚本文件:子集化和重新分类值。另一个是R Markdown文件,我正在构建文本以配合各种感兴趣的表格和图表。当我从R脚本文件中调用一个对象时 - 比如:
cars.import
我收到错误```{r}
table(cars.by.name$make)
```
编辑2:我发现这个较老的帖子很有帮助。 Link
Error in summary(cars.by.name$make) : object 'cars.by.name' not found
答案 0 :(得分:8)
here解释了这类问题的解决方案。
基本上,如果您有一个包含代码的.R文件,则无需重复.Rmd文件中的代码,但您可以包含.R文件中的代码。为此,代码块应在.R文件中命名,然后可以在.Rmd文件中按名称包含。
## ---- chunk-1 ----
table(cars.by.name$make)
只有一次在.Rmd文件之上:
```{r echo=FALSE, cache= F}
knitr::read_chunk('test.R')
```
对于您所包含的每个块(将chunk-1
替换为.R文件中该特定块的标签):
```{r chunk-1}
```
请注意,它应该保留为空(按原样),在运行时,来自.R的代码将被带到此处并运行。
答案 1 :(得分:3)
很多时候,我有很多报告需要运行相同的代码,但参数略有不同。分别调用我的所有“统计”功能,生成结果然后只是引用是我通常做的。这样做的方法如下:
---
title: "Untitled"
author: "Author"
date: "August 4, 2015"
output: html_document
---
```{r, echo=FALSE, message=FALSE}
directoryPath <- "rawPath" ##Something like /Users/userid/RDataFile
fullPath <- file.path(directoryPath,"myROutputFile.RData")
load(fullPath)
```
Some Text, headers whatever
```{r}
summary(myStructure$value1) #Where myStructure was saved to the .RData file
```
您可以使用save.image()
命令保存RData文件。
希望有所帮助!