使用Rmarkdown生成PDF。我引入了从先前函数生成的冗长文本字符串,以用作表中的分组行标签。正常的kableExtra::group_rows
方法工作正常。由于每组中的行数相同,我想使用index
方法,但这似乎不起作用:
---
output:
pdf_document:
latex_engine: xelatex
fig_caption: true
---
```{r}
library(magrittr)
library(knitr)
library(kableExtra)
# Build some data
df <- data.frame(x=1:12, y=13:24, z=25:36)
# Row grouping text gets generated from a separate function
gtext <- c("Group 1: text that I don't want to write out",
"Group 2: because it gets generated from something else",
"Group 3: so let's make life easy")
# This works fine:
df %>%
kable(format="latex", booktabs = TRUE, row.names=FALSE) %>%
group_rows(gtext[1],1,4) %>%
group_rows(gtext[2],5,8) %>%
group_rows(gtext[3],9,12)
# But this doesn't:
df %>%
kable(format="latex", booktabs = TRUE, row.names=FALSE) %>%
group_rows(index=c(gtext[1]=4,
gtext[2]=4,
gtext[3]=4))
```
编织时出现以下错误:“解析时出错(text = x,srcfile = src):: 23:30:意外'= '22:”
在40多个表中,其中一些表具有多达10个行分组,因此很容易看出索引方法如何节省时间并防止错误。这里添加的功能(或者我可能错过的解决方法)将是最优秀的!
答案 0 :(得分:2)
我可以使用
将此文档渲染为htmlgroup_rows(index=setNames(c(4, 4, 4), gtext))
问题似乎是您尝试为index
参数创建命名向量的方式。如果您在控制台中尝试此操作,则会收到错误消息:
c(gtext[1] = 4, gtext[2] = 4, gtext[3] = 4)
虽然这不是:
setNames(c(4, 4, 4), gtext)
#> Group 1: text that I don't want to write out
#> 4
#> Group 2: because it gets generated from something else
#> 4
#> Group 3: so let's make life easy
#> 4