【发布时间】:2022-11-12 09:57:31
【问题描述】:
有没有办法在 RMarkdown 或 quarto 中包装单个表格?
我经常处理时间序列数据,需要列出它们。我使用 HTML 作为输出格式。
例如,假设从 2022 年 1 月 1 日到 2022 年 7 月 1 日,我每天进行一次温度测量。 该数据有 182 行观测值。我想用围绕它的适当长度的数据来显示它。
我使用{kableExtra} 作为示例代码以markdown 输出Stackoverflow,但我并不特别关注表格输出的包。
data <- tibble::tibble(
date = seq.Date(from = as.Date("2022-01-01"), to = as.Date("2022-07-01"), by = "day"),
temp = rnorm(length(date), mean = 35.5, sd = 0.3)
)
# Here is the top of the table
head(data) |>
kableExtra::kbl(format = "markdown", digits = 1)
| date | temp |
|---|---|
| 2022-01-01 | 35.2 |
| 2022-01-02 | 35.5 |
| 2022-01-03 | 35.6 |
| 2022-01-04 | 36.3 |
| 2022-01-05 | 35.5 |
| 2022-01-06 | 35.5 |
创建于 2022-11-06,reprex v2.0.2
【问题讨论】:
-
只显示您想要显示的表格的一部分,即将其截断为较短的表格怎么样?你已经使用了
head()。这没有帮助吗?您可以使用head(data, 15)(注意:head()默认为 n=6)或data[1:15,] |> kable()显示前 15 行。还有其他方法可以根据您的喜好过滤 tibble 的特定行。 -
是的,我的目标不是显示所有数据。然而,有时需要包裹一张桌子,即使是部分包裹。例如,如果我想显示 10 行数据,每行包含 5 行数据怎么办?
-
下面有一个广泛的答案(对 Sing Song 表示敬意 - 真的很详细!)这应该回答“如何输出”。坚持的一点是“每行包含 5 行”的意思。如果我说得对,那么您是在谈论将较长的表分解为较小的(子)表。执行此操作的“手动”方式是使用您喜欢的子表创建多个对象并一一打印它们,例如
data[1:5,] |> kable(); data[6:10,] |> kable()。
标签: r r-markdown quarto