我正在尝试将交互式、可排序的表放入使用 R 脚本中的 rmarkdown::render 生成的 html 摘要中。为了生成表,我使用 DT 包中的 datatables() 。报告生成良好,表格看起来也不错,直到您进行列级过滤/搜索,之后显示会显示一些有趣的问题。通过以下示例,我的问题将变得更加清晰。
#' ---
#' title: "Test"
#' author: test
#' output:
#' html_document:
#' toc: true
#' ---
#' <style type="text/css">
#' .main-container {
#' max-width: 1200px;
#' margin-left: auto;
#' margin-right: auto;
#' }
#' </style>
#' ### Test data
#+ setup, include=FALSE, echo=TRUE
require(dplyr)
require(DT)
knitr::opts_chunk$set(echo = TRUE)
#+ core_code, include=FALSE, echo=TRUE
plants <- read.csv("https://vincentarelbundock.github.io/Rdatasets/csv/cluster/plantTraits.csv")
plants<- plants %>%
mutate( ID = paste0("ID_" , sprintf("%04d", 1:136) ) ) %>%
select(ID, X:unsp)
#+ test_table, echo = FALSE
datatable( plants ,
extensions = c("Buttons" , "FixedColumns"),
filter = 'top',
options = list( autoWidth = TRUE ,
dom = 'Blftip',
pageLength = 100,
searchHighlight = TRUE,
buttons = c('copy', 'csv', 'print'),
scrollX = TRUE,
fixedColumns = list(leftColumns = 2)),
class = c('compact cell-border stripe hover') ,
rownames = FALSE)
如果我在 ID 列中搜索 048,它会显示正确的行,如下所示...
但是,如果我取消过滤器并将所有行恢复,则行 ID 列中缺少字符。
这会发生在我搜索的任何列或任何其他数据上。如果我使用主搜索框(在右上角),它不会发生。我在 Mac(OS X 10.11.6)上运行 RStudio(版本 1.1.463),但我已经在 Mac 上的 Chrome、Safari 和 RStudio 内置浏览器上测试了生成的 html 文件;以及 Win7 上的 Chrome 和 IE。关于如何解决这个问题的任何线索?