相关疑难解决方法(0)

模块化R降价结构

有一些问题已经存在,但它们要么不清楚,要么提供无效的解决方案,可能是因为它们已经过时了:

用于大型项目的模块化代码结构

R Markdown/Notebook很不错,但就其呈现方式而言,通常只有一个文件包含所有文本和所有代码块.我经常有一些项目,这样的单一文件结构不是一个好的设置.相反,我使用单个.R.R文件按顺序加载其他文件.我想使用R Notebook复制这个结构,即我有一个.Rmd文件,我从多个.R文件中调用代码.

以这种方式使用项目的好处是,它允许使用.R文件的RStudio进行良好的正常工作流程,但也可以使用R Notebook/Markdown的简洁输出而无需复制代码.

最小的例子

这被简化以使示例尽可能小.两个.R文件和一个主.Rmd文件.

start.R

# libs --------------------------------------------------------------------
library(pacman)
p_load(dplyr, ggplot2)
#normally load a lot of packages here

# data --------------------------------------------------------------------
d = iris
#use iris for example, but normally would load data from file

# data manipulation tasks -------------------------------------------------
#some code here to extract useful info from the data
setosa = dplyr::filter(d, Species == "setosa")
Run Code Online (Sandbox Code Playgroud)

plot.R …

r r-markdown rnotebook

7
推荐指数
1
解决办法
1266
查看次数

来自另一个Rmd中的Rmd文件的源代码

我试图让我的代码更加模块化:数据加载和一个脚本,在另一个分析等清洁如果我是,使用R脚本,这将是调用一个简单的问题sourcedata_setup.R里面analysis.R,但我想记录我在Rmarkdown文档中做出的数据设置和分析决策.所以我尝试写一些排序的source_rmd功能,让我从源代码data_setup.Rmdanalysis.Rmd.

到目前为止我尝试过的:

如何获取R markdown文件的答案,如`source('myfile.r')`?如果有任何重复的块名称(由于命名的块setup在Rstudio的笔记本处理中具有特殊行为,因此无法解决).如何将两个RMarkdown(.Rmd)文件合并为一个输出?想要整合整个文档,而不仅仅是一个代码,还需要唯一的块名称.我已经尝试使用knit_expand建议在生成动态[R降价块,但我的名字在双大括号的变量块,而且我真的很喜欢的方式,使这个方便我colaborators使用为好.并knit_child按照如何嵌套编织调用中的建议使用以修复重复的块标签错误?仍然给我重复的标签错误.

r knitr r-markdown

7
推荐指数
1
解决办法
2165
查看次数

Rmarkdown文档中的源嵌套R文件

明显,我正在编写Rmd带有一些R代码块的报告。我的代码结构如下:

  • functions.R自定义功能的脚本
  • DataDependency.R用于加载软件包和我的数据的脚本,这已经functions.R正是这些任务的来源
  • 一些analysis.R脚本采购DataDependency.R
  • 更多furtheranalyis.R采购analysis.R,从那时起,我不必多次编写一些步骤

因此,我在很大程度上取决于以嵌套方式获取文件的功能。但是,我无法做到这一点,RMarkdown每次都会给我带来错误(请参阅下文)。我太傻了还是缺少此功能?到目前为止,所有尝试均导致错误。

我看到关于该主题的其他问题,只包括采购的.Rmd内部.Rmd文件(这里)之间的区别source(),并read_chunk()在这里)。两者都没有回答我的问题。

我已经尝试确保产生错误的确实是嵌套资源。因此,这是一个最小的工作示例:

微机

文件 mweA.R

x = 1:10
Run Code Online (Sandbox Code Playgroud)

和文件 mweB.R

source("./mweA.R")
y = x * x
Run Code Online (Sandbox Code Playgroud)

现在,在我的.Rmd文件中,我只想加载文件B(或者必须加载两个文件),然后继续:

```{r}
source("./mweB.R")
plot(y ~ x)
```
Run Code Online (Sandbox Code Playgroud)

即使我这样做:

```{r}
source("./mweA.R")
source("./mweB.R")
plot(y ~ x)
```
Run Code Online (Sandbox Code Playgroud)

发生相同的错误,即:

Error in file(filename, "r", encoding …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown

5
推荐指数
1
解决办法
1488
查看次数

在另一个 Rmd 中运行选定的块

我已经在源 Rmd 文件中运行了分析,并且希望仅使用源中的几个块从最终 Rmd 文件编织一个干净的版本。我已经在另一个 Rmd 中的 Rmd 文件的源代码中看到了一些关于从源 Rmd 中提取所有块的答案,以及如何获取 R Markdown 文件(如“source('myfile.r')”)?。我对这些帖子有同样的担忧,因为我不想移植一个单独的 .R 文件,这似乎是唯一read_chunk可行的方法。

我想我现在可以导入源 Rmd,但现在我不确定如何在最终的 Rmd 中调用它的特定块。这是一个可重现的示例:

源代码.Rmd

---
title: "Source Code"
output:
  pdf_document:
    latex_engine: xelatex
---

```{r}
# Load libraries
library(knitr) # Create tables
library(kableExtra) # Table formatting
# Create a dataframe
df <- data.frame(x = 1:10,
                 y = 11:20,
                 z = 21:30)
```
Run Code Online (Sandbox Code Playgroud)

一些解释性文字

```{r table1}
# Potentially big block of stuff I don't want to have …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown

5
推荐指数
1
解决办法
1581
查看次数

适当的降价代码组织

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

我的问题相当广泛:是否有适当的方法来围绕R Markdown项目组织代码?比方说,有一个生成所有数据结构的脚本?

例如:假设我有cars数据集,并且我已经在制造商处引入了商业数据.如果我想将制造商附加到当前cars数据集,然后使用操纵数据集为每个公司生成单独的汇总表cars.by.name以及使用某个样本绘制图表,该cars.import怎么办?

编辑:现在我打开了两个文件.一个是具有所有数据操作的R脚本文件:子集化和重新分类值.另一个是R Markdown文件,我正在构建文本以配合各种感兴趣的表格和图表.当我从R脚本文件中调用一个对象时 - 比如:

```{r}
table(cars.by.name$make)
```
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说 Error in summary(cars.by.name$make) : object 'cars.by.name' not found

编辑2:我发现这个较旧的帖子很有帮助.链接

---
title: "Untitled"
author: "Jeb"
date: "August 4, 2015"
output: html_document
---


This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>. …
Run Code Online (Sandbox Code Playgroud)

r r-markdown

4
推荐指数
2
解决办法
2113
查看次数

标签 统计

r ×5

r-markdown ×5

knitr ×3

rnotebook ×1