我有一个包含字符向量的列表。我想在RMarkdown文档中创建一个无序列表。我试图通过遍历列表并将输出粘贴到markdown列表中来实现此目的。在knitr中打印结果'asis'。这是一个玩具示例。

test <- list(x = c('a', 'b', 'c'), y = c('d', 'e'))

我想创建一个无序列表,如下所示:
- x
    - a
    - b
    - c
- y
    - d
    - e

我已经尝试使用for循环结合catpaste0来做到这一点。
cols <- names(test)

for (columns in names(test)) {
  cat(paste0("- ", names(test[columns]), '\n', '    ',
             "- ", test[[cols[columns]]], '\n'))
}

哪个输出”
- x
    -
- y
    -

我希望能得到一些帮助,以获得上面已描述的所需无序列表。

最佳答案

试试这个:

---
title: "SO Answer"
author: "duckmayr"
date: "September 14, 2018"
output: html_document
---

```{r unordered_list, echo=FALSE, results='asis'}
test <- list(x = c('a', 'b', 'c'), y = c('d', 'e'))

for (name in names(test)) {
    cat("-", name, '\n', paste('   -', test[[name]], '\n'))
}
```

对我来说,这产生了:

r - 在Markdown中将列表对象转换为无序列表-LMLPHP

您以前尝试过的方式有两个问题:
  • 您应该已经用test[[columns]]而不是test[[cols[columns]]]
  • 进行了子设置。
  • 即使您修复了该问题,也可以看到paste为您造成了一些问题:

  • for (columns in names(test)) {
       cat(paste0("- ", names(test[columns]), '\n', '    ',
                  "- ", test[[columns]], '\n'))
    }
    
    
    - x
        - a
     - x
        - b
     - x
        - c
    - y
        - d
     - y
        - e
    

    关于r - 在Markdown中将列表对象转换为无序列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52335498/

    10-12 17:30
    查看更多