Передача параметров в R Markdown

Я пытаюсь создать параметризованный отчет в R Markdown на основе следующего руководства: http://rmarkdown.rstudio.com/developer_parameterized_reports.html

Я пытаюсь передать путь к файлу в качестве параметра из консоли r с помощью рендера. Как это:

render('rmarkdownfile.rmd',params= list( client= "clientdata.csv"))

и мой файл уценки выглядит так:

title: "Liquidity Report"
output: pdf_document
params: client:"clientdata.csv"
---
```{r plot, echo=FALSE, warning=FALSE}
cftest <- read.csv(params$client)

Но я получаю сообщение об ошибке:

Ошибка в read.table(file=file, header=header, sep=sep, quote=quote,: 'file' должна быть строкой символов или соединением. Вызовы:

Кажется, что Markdown не распознает параметры, хотя я и следую инструкциям руководства. Кто-нибудь смог успешно использовать параметры в R Markdown?

Кроме того, я следую рекомендациям руководства и использую предварительный просмотр R Studio, а также последние сборки r markdown и knitr.

Спасибо вам за помощь!

Рафаэль

2 ответа

Решение

В моем случае это сработало, просто пришлось изменить отступ в заголовке и некоторые имена, которые доступны в моей папке...

Вот мой jnk.Rmd

---
title: "Liquidity Report"
output: pdf_document
params: 
  client: "NAMESPACE"
---
```{r plot, echo=FALSE, warning=FALSE}
cftest <- read.csv(params$client)
```

И это то, что я назвал в консоли: render('jnk.Rmd',params= list( client= "NAMESPACE"))

Мне нравится не только указывать имя файла, но и каталог в моих параметризованных отчетах.

---
title: Liquidity Report
date: '`r strftime(Sys.time(), format = "%B %d, %Y")`'
output:
  pdf_document:
    number_sections: yes
    theme: cerulean
    toc: yes
    toc_depth: 2
params:
    directory:
        value: x
    file:
        value: x
---

```{r, include = F}
knitr::opts_chunk$set(echo = F,
                      warning = F,
                      message = F)

## Set options
options(scipen = 999, # prevent scientific notation on large numbers
        stringsAsFactors = F) # prevent R from turning everything to factors

## Pull in the data
dataset <- read.csv(paste(params$directory, params$file, sep = '/'))
```

И тогда в вашей функции рендеринга вы можете:

rmarkdown::render('LiquidityReport.Rmd',
                  params = list(
                      directory   = '~/path/to/data',
                      file        = 'clientdata.csv')
                  )
Другие вопросы по тегам