Я работал над этим вопросом. Вот код, дающий не точный, но похожий на тот формат таблицы, который я хотел: я использовал функцию collapse_rows, поэтому мне пришлось транспонировать таблицу по сравнению с той, которую я хотел. Я не знаю такой функции для столбца.
df2 <- df %>%
group_by(Month, Enrichment, Vegetation) %>%
summarise(
across(
.cols = starts_with(c("V")),
.fns = list(mean, sd),
.names = "{col}_{fn}"
)
)
вот уродливый код для вычисления стандартной ошибки вместо стандартного отклонения:
df2[,c(5,7,9,11,13,15,17)] <- df2[,c(5,7,9,11,13,15,17)]/sqrt(3)
Затем измените имя столбца но имейте в виду порядок (вы можете посмотреть функцию "start_with", если вы забыли). Два первых столбца - это факторы, которые я удалил, так как они часто длинны, и мне нужно уменьшить размер таблицы. Вероятно, это не самый эффективный способ сделать это, но, по крайней мере, он работает
colnames(df2)[2:17] <- c("", "", "Mean", "SE","Mean", "SE","Mean", "SE","Mean", "SE","Mean", "SE")
Я использовал пакет kableExtra для следующих
library(kableExtra)
kable(df2, "latex", digits = 1,
booktabs = TRUE, align = "c",
caption = '(ref:df)',
linesep = "") %>%
add_header_above(c(" " = 3, "V1" = 2, "V2" = 2, "V3" = 2, "V4" = 2, "V5" = 2),
bold = T) %>%
collapse_rows(1:2,
row_group_label_position = 'stack',
latex_hline = "none")%>%
landscape()
На всякий случай, это очень красивые виньетки для пакета kableExtra