正确的降价代码组织

时间:2015-08-05 03:20:42

标签: r r-markdown

我一直在阅读关于R Markdown(hereherehere)并使用它来创建可靠的报告。我想尝试使用我正在运行的小代码进行一些临时分析,并将它们转换为更具伸缩性的数据报告。

我的问题相当广泛:是否有正确的方法来围绕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

2 个答案:

答案 0 :(得分:8)

here解释了这类问题的解决方案。

基本上,如果您有一个包含代码的.R文件,则无需重复.Rmd文件中的代码,但您可以包含.R文件中的代码。为此,代码块应在.R文件中命名,然后可以在.Rmd文件中按名称包含。

test.R:

## ---- chunk-1 ----
table(cars.by.name$make)

test.Rmd

只有一次在.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文件。

希望有所帮助!