如何在R Markdown中无逗号展示自定义列表?
R Markdown列表去逗号解决方案
问题背景
现有地区向量:
reg.order <- c("North Pacific", "Pacific", "Western Pacific", "New England", "Mid-Atlantic", "South Atlantic", "Gulf of Mexico")
使用原循环代码输出时,项目间会出现逗号,无法实现无逗号分行展示:
{r Paragraph_5, echo=FALSE, warning=FALSE, message=FALSE} for (reg00 in 1:length(reg.order)){ place <- reg.order[reg00] place[reg00] <- paste("**",place, "**", "\n\n", sep = "") } `r place`
核心问题
原循环每次会覆盖place变量,最终仅保留最后一个元素;若误将整个向量输出,R默认会用逗号分隔向量元素,导致不符合预期的格式。
解决方案
方法1:直接拼接格式文本(无列表符号)
用paste0批量处理每个元素,再通过collapse = "\n\n"实现换行分隔,无需循环:
{r Paragraph_5, echo=FALSE, warning=FALSE, message=FALSE} place <- paste0("**", reg.order, "**", collapse = "\n\n")
在文档中调用:
`r place`
输出效果:
North Pacific
Pacific
Western Pacific
New England
Mid-Atlantic
South Atlantic
Gulf of Mexico
方法2:生成标准Markdown无序列表
如果需要带项目符号的列表,直接生成带短横线的格式:
{r Paragraph_5, echo=FALSE, warning=FALSE, message=FALSE} place <- paste0("- **", reg.order, "**", collapse = "\n")
调用后输出:
- North Pacific
- Pacific
- Western Pacific
- New England
- Mid-Atlantic
- South Atlantic
- Gulf of Mexico
方法3:修正原循环逻辑(不推荐,较繁琐)
如果坚持用循环,需要初始化空向量并累加元素,最后拼接:
{r Paragraph_5, echo=FALSE, warning=FALSE, message=FALSE} place <- character(0) for (reg00 in seq_along(reg.order)){ place <- c(place, paste0("**", reg.order[reg00], "**")) } place <- paste(place, collapse = "\n\n")
内容的提问来源于stack exchange,提问作者Kelsey Spencer
相关产品推荐
相关产品推荐

