我正在使用 R markdown 并使用 Rstudio 来 Knit。
我有以下 R markdown 文件:
---
title: "Untitled"
author: ""
date: ""
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
#Load libraries
library(knitr)
library(ggplot2)
library(reshape2)
library(chron)
library(gridExtra)
#Get current directory
directory = getwd()
setwd(directory)
readname = function()#prompt user for the name and number of the site
{
n <- readline(prompt="Site name and number: ")
return(n)
}
prjName=readname()
print(prjName)
prjName2="TEST NAME"
prjName2
该代码要求用户提供站点名称和编号。我可以在 R markdown 中运行该块,并通过控制台获取用户输入并打印出来。它也作为字符串存储在全局环境中。然而,当我编织文档时,我得到以下结果:
看来,在编织文档时,我无法打印用户输入的字符串......
任何对此的帮助将不胜感激。
正如内森在评论中所说,你不能使用readline
获取输入knitr
文档,因为它不是交互式的。但是您可以使用“参数化报告”获取用户输入(请参阅http://rmarkdown.rstudio.com/developer_parameterized_reports.html http://rmarkdown.rstudio.com/developer_parameterized_reports.html)。例如,
---
title: "Untitled"
author: ""
date: ""
output: html_document
params:
prjName: "The project name"
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
readname = function()# Get the project name
{
params$prjName
}
prjName=readname()
prjName
如果你只是编织这个文件,它会将 prjName 设置为“项目名称”。如果您单击“使用参数编织”(或设置params = "ask"
在打电话给rmarkdown::render
),系统将提示您输入该值,并将该值作为默认值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)