我有一个包含字符向量的列表。我想在 RMarkdown 文档中创建一个无序列表。我试图通过遍历列表并将输出粘贴到 Markdown 列表中来完成此操作。在 knitr
打印结果 'asis'
.这是一个玩具示例。
test <- list(x = c('a', 'b', 'c'), y = c('d', 'e'))
我想创建一个这样的无序列表:
- x
- a
- b
- c
- y
- d
- e
我尝试将 for 循环与
cat
结合使用来做到这一点。和 paste0
.cols <- names(test)
for (columns in names(test)) {
cat(paste0("- ", names(test[columns]), '\n', ' ',
"- ", test[[cols[columns]]], '\n'))
}
哪个输出”
- x
-
- y
-
我希望得到一些帮助来获得我上面描述的所需的无序列表。
最佳答案
这是一个不需要循环的解决方案。 List 和 yaml 文件很相似,所以你可以把它转换成 yaml(稍微修改一下)和 cat
.
test <- list(A = c("a", "b", "c"), B = c("d", "e"), C = 1:5)
cat(gsub("^!omap\n|:", "", yaml::as.yaml(test, omap = TRUE)))
解释:
as.yaml
将列表转换为有序的 yaml函数来自 yaml
package . gsub
删除 omap header . cat
结果。 你也可以把它放在一个自定义函数中,这样你就不会泛滥代码:
catList <- function(inputList) {
cat(gsub("^!omap\n|:", "", yaml::as.yaml(inputList, omap = TRUE)))
}
catList(test)
关于r - 在 Markdown 中将列表对象转换为无序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52335498/