我想为报告创建一个降价文档。我有二十个对象(命名为字母)。对象是各种汇总表,给定字母作为名称。 所有对象都需要以块(在Rstudio markdown中)进行生成表。我用knitr来创建报告。
list<- dput(unlist(letters[1:20]))
上面的命令生成了需要进入块的所有表。 对象名称保存在列表中。
现在我需要创建一个markdown文档,它需要包含块
'```{r summary_table, results='asis'}
kable(a, digits=1, align='r' )
```'
'```{r summary_table, results='asis'}
kable(b, digits=1, align='r' )
```'
..顺其自然..
'```{r summary_table, results='markdown'}
kable(t, digits=1, align='r' )
```'
如何通过几个步骤生成此语法?一点点想法会帮助我走。
我可以通过控制台中的get(&#34; a&#34;)看到该表。
lapply(list, function(x) get(x))
为我提供包含所有表格的列表。
我想我需要按照这条路去做。但不知道如何插入每个字母
代码块的中间部分。
提前谢谢。
a<-"\n\n```{r summary_table, results='asis'}
knitr::kable(a, digits=1, align='r' )
```\n\n"
和
cat(rep(a, each=20))
让我来到某个地方。任何想法我如何能够回应那个&#39; a&#39;列表中的字符?
答案 0 :(得分:1)
这样的事情:
#dummy list
mylist <-
list(a=data.frame(x=runif(10)),
b=data.frame(x=runif(10)),
c=data.frame(x=runif(10)))
#make temporary Rmd file
write.table(
paste0(
"```{r summary_table",names(mylist),", results='asis'}
kable(mylist['",names(mylist),"'], digits=1, align='r' )
```"),
"temp.Rmd",row.names=FALSE,col.names=FALSE,quote=FALSE)
输出 - temp.Rmd
```{r summary_tablea, results='asis'}
kable(mylist['a'], digits=1, align='r' )
```
```{r summary_tableb, results='asis'}
kable(mylist['b'], digits=1, align='r' )
```
```{r summary_tablec, results='asis'}
kable(mylist['c'], digits=1, align='r' )
```
答案 1 :(得分:0)
@ zx8754,它有效:)你的更容易&amp;直截了当。我没有想到paste
我试图沿着这条线走。
a<-"\n\n```{r summary_table, results='asis'}
knitr::kable(a, digits=1, align='r' )
```\n\n"
和
cat(rep(a, each=20))
这两个可以进入一个函数,我可能能够指定我需要多少块的复制。如何用该语法替换对象名称(现在a
处于何处)?在其他一些场景中它会有所帮助。谢谢!