存储在同一文件夹中的多个csv的降价功能

拉希利

我在 r markdown 中编写了一个函数。我想在存储在同一文件夹中的许多不同的 csv 上运行以下内容。

因此,我将如何创建一个通用函数 [代替我的整体代码中的以下代码],以便它允许导入和分析文件夹中的每个 csvs?

dat <- read.csv("importsinglecsv.csv",
                    header = TRUE,
                    sep=',')

总体代码概述如下:

Single Test
    dat <- read.csv("importsinglecsv.csv",
                    header = TRUE,
                    sep=',')
    
    datA <- subset(dat, Version == "A")
    datB <- subset(dat, Version == "B")
    olsA <- lm(measure ~ mark, data = datA)
    olsB <- lm(measure ~ mark, data = datB)
    coeffs <- rbind(olsA$coefficients, olsB$coefficients)
    r.Squared <- rbind(summary(olsA)$r.squared, summary(olsB)$r.squared)
    corA <-cor(datA$measure, datA$mark)
    corB <- cor(datB$measure, datB$mark)
    ```

我试图开发一个链接到 Markdown 文件的 for 循环,但做错了......

for (i in length(df)) {
  dat <- df[[i]]
  datA <- subset(dat, Version == "A")
  datB <- subset(dat, Version == "B")
  rmarkdown::render('"filepath"/tes.rmd',
                    output_file=paste0("filepath", df[i], ".html"),
                    params=list(new_title=paste("Exploratory analysis -", i)))
}
随机字符42

你在正确的轨道上。这是将参数传递给 rmd-files 的情况,解决方法如下:

您的.Rmd文件需要知道.csv要加载哪个,因此我们将文件名作为参数传递:

分析.r

your_path <- 'your/path/goes/here'

for (filename in list.files(path=your_path, pattern='*.csv',  full.names=FALSE)) {
  rmarkdown::render(
    './report.Rmd',
    params=list(filename=paste0(your_path, '/', filename)),
    output_file=paste0(your_path, '/', filename, '.html'))
}

报告.Rmd:

---
title: "report"
output: html_document
params:
  filename: False
---

```{r setup}
dat <- read.csv(filename, header = TRUE, sep=',')
    
datA <- subset(dat, Version == "A")
datB <- subset(dat, Version == "B")
olsA <- lm(measure ~ mark, data = datA)
olsB <- lm(measure ~ mark, data = datB)
coeffs <- rbind(olsA$coefficients, olsB$coefficients)
r.Squared <- rbind(summary(olsA)$r.squared, summary(olsB)$r.squared)
corA <-cor(datA$measure, datA$mark)
corB <- cor(datB$measure, datB$mark)
```

Your RMarkdown goes here.

解释:

analyse.R循环所有以*.csv.结尾的文件`rmardown.render(..., params=list(filename=filename)) 然后将文件名传递给它渲染的文件。

您的.Rmd文件已准备好接受 YAML 标头的参数。使用 .params 访问参数params$PARAMNAME_SPECIFIED_IN_HEADER

yihui 的“R Markdown: The Definitive Guide”, 15.3 Knitting with parameters 中有很好的解释(已经在上面链接的线程中链接了)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从同一文件夹中的文件导入功能

从与.jar文件位于同一文件夹中的文件读取

在同一文件夹中命名文件空间

如何从同一文件夹中的模块导入功能?

如何在同一文件夹中创建多个vue应用

是否可以从存在Azure功能的同一文件夹中读取文件

HTML无法识别同一文件夹中的JS文件

在同一文件夹中的多个CSV文件中更改定界符,并将它们写入新文件夹

如何在同一文件夹中导入多个Dart文件

如何使用Gulp解压缩同一文件夹中的多个文件

afterScenario无法正常工作调用不在同一文件夹中的功能

Google Spread Sheet Export CSV位于同一文件夹中

将同一文件夹中的多个文件读取到不同的数据框

文件名来自同一文件夹中的其他文件

从同一文件夹中的另一个文件导入功能

如何从Javascript的同一文件夹中的各种文件中导入一个功能?

Excel VBA-同一文件夹中的多个Dir()

将图像存储在C#Window Form App的同一文件夹中

忽略同一文件夹中多个文件中的字符

从ftp下载文件并保存在同一文件夹中

多个可执行文件同时访问同一文件夹

Git:同一文件夹中的多个存储库,包含通用文件和代码

同一文件夹的多个所有者

C#:捕获多个图像并保存在同一文件夹中?

如何通过python读取同一文件夹中多个docx文件中的表格

循环遍历多个文件夹并计算同一文件夹 R 的栅格平均值

将同一文件复制到多个不同的文件夹 PowerShell

从同一文件夹中的多个文件创建一个 csv 文件

可以将来自多个 .csv 文件(存储在同一文件夹中)的一列数据编译为一列吗?