R 在kable中插入空行

R 在kable中插入空行,r,knitr,r-markdown,R,Knitr,R Markdown,我把一排排排成一排。每个组包含一个组的数据,每个组有3到5行。为了便于阅读,我想在组之间的表格中留下空行,但无法使其正常工作。 我将所有NA放入一行,然后设置选项(knitr.kable.NA=“”)。在控制台中打印时工作正常,如下所示: |C.01.C.00522 | 3| 1203| 0.043| -0.096| -16.441| |C.01.C.00522 | 4| 8364|

我把一排排排成一排。每个组包含一个组的数据,每个组有3到5行。为了便于阅读,我想在组之间的表格中留下空行,但无法使其正常工作。 我将所有NA放入一行,然后设置选项(knitr.kable.NA=“”)。在控制台中打印时工作正常,如下所示:

|C.01.C.00522 |        3|        1203|    0.043|                -0.096|           -16.441|
|C.01.C.00522 |        4|        8364|    0.298|                 0.159|            31.765|
|C.01.C.00522 |        5|        3494|    0.124|                -0.014|            -2.588|
|             |         |            |         |                      |                  |
|C.02.A.00577 |        1|        2496|    0.089|                -0.014|            -2.410|
|C.02.A.00577 |        2|        1975|    0.070|                -0.032|            -5.609|
|C.02.A.00577 |        3|        3400|    0.121|                 0.018|             3.297|
但是在呈现的pdf文档中,第一组有一个表,然后是所有未格式化的行

C.01.C.00522 3 1203 0.043-0.096-16.441 C.01.C.00522 4 8364 0.298 0.159 31.765 C.01.C.00522 5 3494 0.124 -0.014 -2.588 C.02.A.00577124960.089-0.014-2.410 C.02.A.0057721975 0.070-0.032-5.609

我还尝试了选项(knitr.kable.NA='.'),这会生成一个格式正确的表,但是所有的点都有点烦人


有什么想法吗?

谢谢伊姆兰提到卡布利克斯特拉。在我上周发布的
kableExtra
0.3中,一个名为
collapse\u rows
的新函数可能对这种情况有所帮助

dt <-data.frame(id =c(rep("C.01.C.00522", 3),rep("C.02.A.00577", 3)),var1 =c(3,4,5,1,2,3), var2 =c(1203, 8364, 3494, 2496, 1975, 3400))

kable(dt, "latex", booktabs = T) %>%
  collapse_rows(columns = 1)
dt%
折叠行(列=1)

如果您还没有看到这一点,
group_rows
函数可能有助于提高row的可读性和分组性。我认为这不实用。似乎
group\u行
一次只做一组。谢谢,郝。这似乎正是我需要的。但是,我收到了pandoc错误43,并显示以下消息:!未定义的控制序列。l、 125\toprule以下是调用kable的代码:kable(all.tabs,“latex”,booktab=T,caption=paste(“干扰统计”,评估,yrq))%>%collapse_行(columns=1)@Stuart interest。你能用一个可复制的例子发布一个问题吗&如果可能的话,你的会话信息,这样我就可以跟踪到底发生了什么?我发现我需要在YAML头中添加一些\usepackage{}语句,如下所示:头包括:-\usepackage{booktab,multirow}-\usepackage{amsmath,amssymb}-\usepackage{enumitem,array}不确定我是否需要所有这些,但是….但是表的长度超过了1页,但是它不能做\longtable的事情。它只是停止,即使一个普通的kable()可以工作。有什么想法吗?@Stuart如果你使用
库(kableExtra)
而不是调用
kableExtra::collapse\u rows()加载
kableExtra
,默认情况下,它将为您加载必要的包。对于longtable,您可以使用
kable
中的
longtable
选项来执行此操作。例如
kable(dt,“latex”,longtable=T,booktab=T)%%>%kable\u样式(latex\u options=“repeat\u header”)%%>%collapse\u行()
这太完美了!感谢您的帮助和KableXtra软件包!但是,尽管我使用library()加载了KableXtra,我仍然必须在YAML头中添加latex\usepackages{}。实际上,我有一个小R程序来进行渲染,库(KableXtra)就在那里。我没有库(KableXtra)在Rmd文档中。这不应该有什么不同,是吗?