这是我的数据集:
structure(list(grp = c("Catalunya", "Catalunya", "Catalunya",
"Catalunya", "Catalunya", "Catalunya", "Catalunya", "Espanya",
"Espanya", "Espanya", "Espanya", "Espanya", "Espanya", "Espanya",
"Zona euro", "Zona euro", "Zona euro"), ...1 = c("Població activa",
"Població ocupada", "Població en atur", "Taxa d'ocupació (16-64 anys, %)",
"Taxa d'atur (%)", "Afiliació a la Seguretat Social", "Atur registrat",
"Població activa", "Població ocupada", "Població en atur",
"Taxa d'ocupació (16-64 anys, %)", "Taxa d'atur (%)", "Afiliació a la Seguretat Social",
"Atur registrat", "Ocupació", "Taxa d'ocupació (15-64 anys, %)",
"Taxa d'atur (%)"), `2020` = c(-1.26839233534172, -3.04809376067197,
13.0847696095673, 67.0925, 12.635, -2.56184474168086, 21.1826104693573,
-1.27577940774132, -2.91655923111536, 8.71827635843001, 61.9475,
15.5325, -2.19941425385114, 17.8188983021421, 1, 66.85, 7.875
), `2021` = c(1.94340042691949, 3.18739133041548, -6.67185069984448,
68.9625, 11.565, 2.65857732877581, -5.2563187744479, 2.06678961392581,
2.97449410686412, -2.87106069939181, 63.795, 14.785, 2.70215065508972,
-3.89736496774028, -1.7, 67.875, 7.725), `2022` = c(-0.0301881944890559,
2.09681519410247, -16.2861745264678, 70.225, 9.685, 3.83887864972354,
-18.876581280129, 0.913452577071894, 3.12019561435448, -11.8084005190185,
65.505, 12.9175, 3.79262159563356, -16.8978292575669, 1, 69.4,
6.775), `1r 2023` = c(1.99922108269506, 1.85115552598849, 3.29781836631151,
69.4, 10.37, 3.02181041714329, -5.7146162870376, 1.38051712425944,
1.83273835307471, -1.47730494219925, 65.2, 13.26, 2.61666709067936,
-7.08354716233971, 1.91225710479803, 69.5, 6.8), `2n 2023` = c(2.81592167976299,
3.77733598409542, -6.57420249653259, 71.91, 8.44, 2.94860134018895,
-4.39319912524291, 1.84629330323165, 2.87619699042407, -5.37439199835583,
66.99, 11.6, 2.69191266607034, -6.90855143327568, 1.49541299041116,
70.3, 6.3), `3r 2023` = c(3.4827138162085, 4.39619090423888,
-5.42168674698795, 72.5, 8.5, 2.76585066636925, -3.91667160303214,
2.52955253571594, 3.50535635193738, -4.19434937252533, 67.34,
11.84, 2.85840068444791, -7.3934987898817, NA, NA, NA), `ag. 2023` = c(NA,
NA, NA, NA, NA, 2.79186387198558, -3.44014019290773, NA, NA,
NA, NA, NA, 2.84156691399289, -7.57598555522119, NA, NA, NA),
`set. 2023` = c(NA, NA, NA, NA, NA, 3.70204800089409, -5.33024006683261,
NA, NA, NA, NA, NA, 3.72703019423044, -7.4594507870543, NA,
NA, NA), `oct. 2023` = c(NA, NA, NA, NA, NA, 2.61365216182399,
-2.38594696490765, NA, NA, NA, NA, NA, 2.55953296962417,
-5.33426281316769, NA, NA, NA)), row.names = c(NA, -17L), class = c("tbl_df",
"tbl", "data.frame"))
还有我在 RMarkdown 中做的表格:
p4_2 <- read_xlsx("G:/SUBDIRECCIO-ESTUDIS/CONJUNTURA/INDICADORS MENSUALS/Automatitzacio_IC/proves R/IC_fitxer_RECULL_Maria.xlsx",
range = "B19:M39", 2, col_types = c("text", "numeric", "numeric", "numeric", "numeric", "numeric", "numeric", "numeric", "numeric", "numeric", "numeric", "numeric")) [, -c(5,9)]
#importem des de la línia dels anys
options(knitr.kable.NA = "-")
grp_nm <- c("Catalunya", "Espanya", "Zona euro")
p4_2 <-
p4_2 %>%
mutate(grp = ifelse(...1 %in% grp_nm, ...1, NA))%>%
fill(grp) %>%
filter(!...1 %in% grp_nm) %>%
select(grp, everything())
kable(p4_2[, -1],
align = "lrrrrrrrrr",
col.names = c("", names(p4_2[-(1:2)])),
booktabs=TRUE,
digits=1,
format.args = list(big.mark="."),
caption="\\textbf{Comerç exterior} (\\% de variació interanual)", escape = FALSE,
vline = "",
toprule = "\\arrayrulecolor{black}\\toprule",
bottomrule = "\\arrayrulecolor{orange}\\bottomrule[1.1pt]",
linesep = "\\arrayrulecolor{lightgray}\\midrule[0.5pt]") %>%
add_header_above(c("", "Any" = 3, "Trimestre" = 3, "Mes" = 3), bold=T) %>%
kable_styling(latex_options=c("HOLD_position","scale_down"), position="center") %>%
column_spec(1, width="6cm") %>%
column_spec(2:10, width="1cm") %>%
row_spec(0, bold = T) %>%
pack_rows(index = table(p4_2$grp), background = "#E0E0E0", latex_gap_space = "0.5pt")
当我将其编织为 PDF 时,出现以下错误:
!错位 对齐。 \中规则-> 对齐 {\ifnum 0=`} i @aboverulesep = boverulesep \global @... l.321 nd{表格}}
错误:LaTeX 无法编译 provaM.tex。请参阅 https://yihui.org/tinytex/r/#debugging 了解调试技巧。有关更多信息,请参阅 provaM.log。 执行停止
我不明白这个错误是从哪里来的,因为我对其他表使用相同的代码......
您不必显式地将 midrule 添加到 kable 的linesep 中,因为此包会自动执行此操作。你可以尝试:
{r, results='asis', echo=FALSE}
library(knitr)
# Assuming p4_2 is your data frame
kable(p4_2[, -1],
align = "lrrrrrrrrr",
col.names = c("", names(p4_2[-(1:2)])),
booktabs = TRUE,
digits = 1,
format.args = list(big.mark = "."),
caption = "\\textbf{Comerç exterior} (\\% de variació interanual)",
escape = FALSE,
vline = "",
toprule = "\\arrayrulecolor{black}\\toprule",
bottomrule = "\\arrayrulecolor{orange}\\bottomrule[1.1pt]",
linesep = "\\arrayrulecolor{lightgray}")
如果要自定义中线,可以添加:
midrule = "\\arrayrulecolor{lightgray}\\midrule[0.5pt]")