有没有一种方法可以用RMarkdown或夸托 Package 一个表?
我经常处理时间序列数据,需要列出它们。我使用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)
| 日期|温度|
| - ------|- ------|
| 2022年1月1日|三十五点二|
| 2022年1月2日|三十五点五|
| 2022年1月3日|三十五点六|
| 2022年1月4日|三十六点三|
| 2022-01-05 2022-01-05|三十五点五|
| 2022年1月6日|三十五点五|
创建于2022年11月6日,使用reprex v2.0.2
2条答案
按热度按时间shyt4zoc1#
我意识到在编辑这个答案一个小时后,我的答案有点偏离了主题。我的答案已经转移到了如何进行任何类型的输出折叠的问题上。
如果你想做10行数据,每行5行,我想你的意思是像分页?那么我不知道如何做到这一点。
如果你想要一个部分表,我知道
dyplyr::tibble()
会打印出前10行数据,并缩写其余的数据。使用dyplyr::tibble(knitr::kable(your_table))
,它会打印表,但以纯文本格式,如markdown表。我最近换到了夸托,看起来他们也没有任何分页功能。下面我提供了3个方法,我知道它们可以在Rmd上工作,也可能在Quarto上工作。
附言:
方法一:使用CSS Syling的可滚动输出
参考R Markdown Cookbook-7.4 Scrollable Code Blocks,使用CSS样式,
Show/Hide Tables
输出:
注意:这需要包含你的源代码(可以使用
echo=FLASE
),如果你的表很大或者里面有单张Map之类的东西,点击查看可能会出现滞后,建议使用head(your_table)
函数。PS:如果你对
kableExtra
的表格输出不满意,也许可以试试knitr::kable(you code to print table)
或rmarkdown::paged_table(...)
或pander::pander(...)
。我特别喜欢pander
的PDF输出表格,它将支持Latex的表格居中显示列/行名称。但是根据HTML主题输出,pander()
并不总是最好的。jm81lzqq2#
如果你想完全折叠夸托中的一些内容(比如带有
#| code-fold: true
的代码块),你可以在它周围放置htmldetails
标签:Your content that can be collapsed/folded.