【问题标题】:Creating a new line within an RMarkdown chunk在 RMarkdown 块中创建新行
【发布时间】:2018-09-08 16:58:21
【问题描述】:

在 R Markdown 中工作时,我通常会在块之外添加文本(例如,图形/表格标题),但在这种情况下,我需要遍历 50 多个变量来创建几个特定于每个变量的图。因此,我在代码块中添加了几行文本,以便将其包含在每组绘图中。理想情况下,我还想在继续下一个变量之前添加一个分页符。我正在编写 Word(这是我要求的格式)。

我尝试在每一行之后添加空格,“/newline”,“/n”,但没有成功(我尝试使用一个反斜杠和两个,因为我不清楚将哪个用于 Word 文档) .我可以手动编辑文档,但这违背了目的!任何提示将不胜感激。

```{r create plots, echo=FALSE, fig.height=8, fig.width=8, results='asis'}

for (i in seq(1, nrow(variables))) {
  x <- variables[i,]
  x <- drop.levels(x)
  var <- x$variables

# Add some text
cat("Variable: **", paste(var), "** (N = ", number obs, ")", sep="")  
cat("\n")  
cat("More Text")    
cat("\n")  
cat("Even more text")  

# Create plots.....

# insert page break
cat("\pagebreak")
}

```

【问题讨论】:

标签: r


【解决方案1】:

按照How to add a page break in word document generated by RStudio & markdown 的指示创建reference_docx 后,这似乎可以满足您的需求

---
output: 
  word_document:
     reference_docx: headingfive.docx
---
```{r, results="asis"}
for (var in LETTERS[1:6]){
  # Add some text
  cat("Variable: **", paste(var), "**",  sep="")  
  cat("  \n")  
  cat("More Text")    
  cat("  \n")  
  cat("Even more text")  
  cat("  \n")

  # Create plots.....

  # insert page break
  cat("\n")
  cat("#####\n")
  cat("\n")


}
```

第 5 级标题末尾以及之前/之后的额外“\n”很重要。

【讨论】:

  • 谢谢!我仍然无法从 RMarkdown 插入中断,但只是添加了 ##### 并在 Excel 中使用查找/替换来插入分页符 - 我不知道“^m”是一个选项。
  • 非常感谢投票和/或接受答案。
【解决方案2】:

这个简单的解决方案对我有用:

  1. 添加选项 comment=NA 以隐藏您的区块中的主题标签。
  2. 为要插入的每一行插入一个不可见字符,后跟换行符。

在下面的示例中,blanks &lt;- rep(c(' ', '\n'),5) 的第一个术语看起来像一个空格 ' '。但是,在单引号之间,空格实际上是通过键入快捷键[CTRL]+ 255 创建的。在您的降价文档中,插入的字符将显示为单个点,并以粉红色突出显示。

这里有一些示例代码:


blanks <- rep(c(' ', '\n'),5) # This will print five blank lines between plots. 

AddBreak <- function() {
for (i in blanks)
  cat(i)
}

p1 <- plot(data.frame(a = seq(1,16,by=1), b = sample(10:20,16, replace = TRUE)), main="Plot 1")
p2 <- plot(data.frame(a = seq(1,16,by=2), b = sample(10:20,8,  replace = TRUE)), main="Plot 2")
p3 <- plot(data.frame(a = seq(1,32,by=1), b = sample(10:20,32, replace = TRUE)), main="Plot 3")

p1
AddBreak()
p2
AddBreak()
p3

【讨论】:

    【解决方案3】:

    添加断线最简单的方法是:

    cat('<br>')
    

    所以,在你的例子中:

    # Add some text
    cat("Variable: **", paste(var), "** (N = ", number obs, ")", sep="")  
    cat('<br>')  
    cat("More Text")    
    cat('<br>')
    cat("Even more text")  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 2018-09-05
      • 2014-11-08
      相关资源
      最近更新 更多