我有以下数据集:
structure(list(...1 = c("Catalunya", "PIB", "Demanda interna1",
"Demanda externa1", "Espanya", "PIB", "Demanda interna1", "Demanda externa1",
"Zona euro", "PIB", "Demanda interna1", "Demanda externa1", "PIB d'Alemanya",
"PIB de França", "PIB d'Itàlia", "Internacional", "PIB de la UE-27",
"PIB dels EUA", "PIB del Japó"), `2020` = c(NA, -11.9, -7.4,
-4.5, NA, -11.2, -9, -2.2, NA, -6.1, -5.57, -0.53, -3.8, -7.5,
-9, NA, -5.6, -2.2, -4.3), `2021` = c(NA, 6.2, 3.8, 2.4, NA,
6.4, 5.9, 0.5, NA, 5.6, 4.24, 1.36, 3.2, 6.4, 8.3, NA, 5.7, 5.8,
2.1), `2022` = c(NA, 5.5, 2.7, 2.8, NA, 5.5, 5.12183164381576,
0.378168356184236, NA, 3.6, 3.76, -0.16, 1.8, 2.5, 3.7, NA, 3.5,
1.9, 1.1), `1r 2023` = c(NA, 3.2, 1.1, 2.1, NA, 4.1, 1.3, 2.8,
NA, 1.2, 0.63, 0.57, -0.2, 1, 2.1, NA, 1.1, 1.71772942152937,
2), `2n 2023` = c(NA, 2.1, 1.2, 0.9, NA, 2, 2.2, -0.2, NA, 0.5,
0.46, 0.04, 0.1, 1.1, 0.3, NA, 0.4, 2.38237207285343, 1.7), `3r 2023` = c(NA,
2.1, NA, NA, NA, 1.8, 1.6, 0.2, NA, 0.1, NA, NA, -0.4, 0.7, 0,
NA, 0.1, 3, 1.2)), row.names = c(NA, -19L), class = c("tbl_df",
"tbl", "data.frame"))
字符串
我在Markdown中创建了一个表格(到PDF),使用以下代码:
options(knitr.kable.NA = "-")
p3_1[3,1] <- p3_1[7,1] <- p3_1[11,1] <- "$\\text{Demanda interna}^1$"
p3_1[4,1] <- p3_1[8,1] <- p3_1[12,1] <- "$\\text{Demanda externa}^1$"
kable(p3_1,
align = "lrrrrrr",
col.names = c("", names(p3_1[-1])),
booktabs=TRUE,
digits=1,
format.args = list(big.mark="."),
linesep = "" ,
caption="Producte interior brut (\\% de variació interanual, llevat dels casos indicats)", escape = FALSE) %>%
add_header_above(c("", "Any" = 3, "Trimestre" = 3), bold=T) %>%
kable_styling(latex_options=c("HOLD_position","scale_down"), bootstrap_options = c("condensed"), position="center") %>%
column_spec(1, bold=T, width="4cm") %>%
column_spec(2:7, width="2cm") %>%
row_spec(0, bold = T) %>%
row_spec(c(1, 5, 9, 16), background="lightgray") %>%
row_spec(19, extra_css = "border-bottom: 1px solid;") %>%
footnote(general="Idescat; Eurostat; INE; BEA; ESRI; Agència Estatal d'Administració Tributària.", general_title = "Font:", footnote_as_chunk = T,) %>%
footnote(general="$^{A}$Dada avançada. $^{1}$Contribució al creixement. $^{2}$Sèrie original corregida d'efectes de calendari.
$^{3}$En valors constants. Exclou estacions de servei.", escape = F, general_title = "Nota:", threeparttable = TRUE, footnote_as_chunk = T,)
型
其结果是:
的数据
我如何在整个表格中添加浅灰色线条,并且底部线条更粗,呈橙子?
1条答案
按热度按时间rhfm7lfc1#
这里有一个可能的方法(更新,包括编辑线厚度-部分)。
这使用了
kableExtra::kbl()
函数,该函数允许使用LaTeX编辑表格行。将LaTeX包colortbl
添加到yaml以访问函数来更改表格行颜色。线条粗细:
注意线厚定义为
booktabs
封装中的线宽(原因在封装中解释-很值得一读)。如果你想在行之间使用更粗的线,可以使用
linesep
参数来实现,它通常会接受hline
值,但是hline没有width参数,所以我们可以欺骗并使用midrule
,它接受width参数。我找不到一种方法来改变列组标题下面的水平线的粗细;在kableExtra中没有这样做的选项。
如果你删除了列组标题,那么toprule将接受一个width参数,并且toprule将更厚。
快速查看源代码似乎表明,
cmidlines
的选项是硬编码在add_header_above
函数中,因此无法以任何方式进行编辑,这对我来说是显而易见的-其他有更多理解的人可能会提出一个解决方案。对https://github.com/haozhu233/kableExtra上提出的问题的超快速响应解决了阻止编辑toprule的bug。目前可以从
kableExtra
的开发版本访问;可以安装:devtools::install_github("haozhu233/kableExtra")
答案是基于可以应用于您的数据的最小数据集。
因此,如果您不需要调整列标题规则(
cmidrule
)的厚度,那么这可能会起作用。