我想带一个带名称/链接的csv文件,并将其转换为按字母顺序排序的rmarkdown列表。排序很简单,格式化很容易,但从R输出到降价是令人困惑的。
我有以下csv,
name,link
Compiling,compiling.Rmd
Setup,setup.Rmd
Entities,entities.Rmd
然后我有一个R文件按字母顺序对上面的csv进行排序,然后以降价格式(目录)返回。
getTOC <- function() {
toc <- read.csv("data/toc.csv", fileEncoding="UTF-8-BOM")
toc <- toc[order(toc$name),]
toc$ind <- seq(nrow(toc))
# into Rmd format
toc_md <- data.frame(NULL)
toc_md <- paste0(toc$ind, ". [", toc$name, "](", toc$link, ")\n")
return(toc_md)
}
输出为:
"1. [Compiling](compiling.Rmd)" "2. [Entities](entities.Rmd)" "3. [Setup](setup.Rmd)"
这个问题感觉很愚蠢,但是如何让这个输出以与下面相同的方式读入Rmd文件,因为任何输出前一个的方法似乎都会添加额外的符号等,这使得.Rmd不可读。
1. [Compiling](compiling.Rmd)
2. [Entities](entities.Rmd)
3. [Setup](setup.Rmd)
答案 0 :(得分:1)
你可以使用pander
包,它有一堆函数可以输出到markdown。其中一个是pandoc.p
,它为您提供的字符向量中的每个项目创建段落。要打印您生成的markdown,您需要为chunk设置results='asis'
。所以你可以使用一个块,如:
```{r results='asis'}
toc <- getTOC()
pandoc.p(toc)
```
如果你保持降价,你会看到这是生成的:
1. [Compiling](compiling.Rmd)
2. [Entities](entities.Rmd)
3. [Setup](setup.Rmd)
然后会像你期望的那样编织html或者乳胶。
还有其他pandoc.*
个功能可能有用,例如pandoc.link
和pandoc.list
。