![](/img/trans.png)
[英]Using texreg() in R, how to add a line in generated LaTeX table
[英]How to add a list of strings to a PDF generated with a R script via LaTeX
我有一个包含调查结果的数据集,其中一栏可以包含调查参与者的评论。 如果受访者未发表评论,则相应单元格为空。 我编写了一个R脚本,以生成带有数字和表格的PDF,以显示调查结果。 作为结果的一部分,我希望有一页将上述注释作为列表打印出来。
我尝试了以下代码来做到这一点:
{r, echo=FALSE}
cat(df$comments[!is.na(df$comments)], sep="\n")
基本上,此代码可以按预期工作,但不幸的是,注释过长超出了页边距。 在这种情况下是否有可能包含换行符。
现在,我为自己提供了以下内联代码片段的列表:
`r df$comments[!is.na(df$comments)][1]`
`r df$comments[!is.na(df$comments)][2]`
...etc.
与第一个提到的代码相反,这可以正常工作。 因此,我认为代码块的格式就是问题所在。 由于第二个代码仅在我事先知道注释数的情况下才有效,所以这并不是一个可持续的解决方案。
这可能是块选项results
可以帮助的。 LaTeX文档中的results = 'asis'
将输出更改为LaTeX文本而不是等宽代码块。 有关更多选项,请参见此处 。
我假设您正在使用.rmd
和pandoc来生成此PDF。
我建议使用R中易于使用的表函数之一(例如xtable或kable)将注释数组写为乳胶表。 使用kable,您可以使用'width'参数来定义列宽,并且作为副作用,可以使用'p'属性(即文本换行)来格式化表格。 例如,考虑以下最小Rmd文件:
---
output:
output: pdf_document
latex_engine: xelatex
header-includes:
- \usepackage{colortbl}
---
```{r setup, include=FALSE}
library(lipsum, kableExtra)
```
```{r}
set.seed(3)
df <- data.frame(text=replicate(4, lipsum::sentence()))
kable(df, "latex") %>%
column_spec(., 1, width = "3in")
```
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.