kableExtra - 当存在换行符时,collapse_rows 不起作用

问题描述 投票:0回答:1

如标题所述,当存在换行符时,kableExtra的collapse_rows函数似乎不起作用。希望下面的例子能够清楚地解释。

df <- data.frame(A = rep("abc", 3), B = c(1,2,3))

table <- kable(df, format = "latex") %>%
    collapse_rows(columns = 1, valign = "middle")

table

将产生:

collapse_rows without linebreaks

但是

df <- data.frame(A = linebreak(rep("a\nb\nc", 3)), B = c(1,2,3))

table <- kable(df, format = "latex", escape = FALSE) %>%
    collapse_rows(columns = 1, valign = "middle")

table

产生:

collapse_rows with linebreaks

两个代码块之间的唯一区别在于,在第二个代码块

linebreak
中,包装了
A
列,
\n
被添加到字符串“abc”两次,使其成为“a” 乙 c",并且
escape = FALSE
作为参数添加到 kable 调用中。

我仍然非常希望它们能折叠成一个单元格。有谁知道如何解决这个问题吗?

致以诚挚的问候

r latex kableextra
1个回答
0
投票

问题是

linebreak()
调用,它对标签的三个出现中的每一个应用不同的对齐方式,因此
collapse_rows()
不会将它们视为同一事物。这可能是函数中的一个错误,但它有一个简单的解决方法:只需显式指定对齐即可:

df <- data.frame(A = linebreak(rep("a\nb\nc", 3), align = "c"), 
                 B = c(1,2,3))

table <- kable(df, format = "latex", escape = FALSE) %>%
    collapse_rows(columns = 1, valign = "middle")

table

© www.soinside.com 2019 - 2024. All rights reserved.