2017-06-16 23 views
1

我有一些代碼是爲了以編程方式生成數據集的直方圖,因爲此問題的第一個答案中的代碼的確如此:R knitr: Possible to programmatically modify chunk labels?以編程方式生成R markdown代碼時不起作用的因素

我的代碼模板是:

```{r, results='asis'} 
cat("### {{nVar2}} categories") 
``` 

```{r} 
hist(df1$Var1[df1$Var2 == {{nVar2}}]) 
``` 

其保存爲 'template.Rmd'。

我降價輸出的代碼是:

```{r} 
df1 <- data.frame(Var1 = c(0.4,0.3,0.6,1,0,0.1,0.3,0.8,0.2,0.9,0.8,1,1,0.5,0.2,0.6,0.3,0.4,0.1,0.6,0.9,0.9,0.9,0)) 
df1$Var2[df1$Var1 <= 1] <- "D" 
df1$Var2[df1$Var1 <= 0.75] <- "C" 
df1$Var2[df1$Var1 <= 0.5] <- "B" 
df1$Var2[df1$Var1 <= 0.25] <- "A" 
Var2.levels <- unique(df1$Var2) 
``` 

```{r, include=FALSE} 
library(knitr) 
src <- lapply(Var2.levels, function(nVar2) knit_expand(file = "template.Rmd")) 
``` 

`r knit(text = unlist(src))` 

當我運行它,我得到以下錯誤

Error in hist(df1$Var1[df1$Var2 == B]) : object 'B' not found Calls: <Anonymous> ... withCallingHandlers -> withVisible -> eval -> eval -> hist 

古怪不過,當我刪除下面的代碼塊,所以它僅輸出各Var2與'類別'的水平,它工作得很好:

```{r} 
hist(df1$Var1[df1$Var2 == {{nVar2}}]) 
``` 

此外,當我運行只是src <- lapply(Var2.levels, function(nVar2) knit_expand(file = "template.Rmd"))它運行併產生一個列表。

回答

0

出於某種原因,我不確定從我的代碼到this問題中的代碼是否有缺陷,{{nVar2}}需要在我的代碼中用引號引起來。