DT :: datatable в основном столбце в выводе Tufte html - PullRequest
2 голосов
/ 25 января 2020

Я пытаюсь включить DT::datatable в документ Tufte html, используя пакеты Bookdown и knitr. Однако даже если я установлю ширину столбцов с помощью параметра culomnDefs или ширину вывода kintr с помощью параметра fig.fullwidth = FALSE или out.with = '50%', DT::datatable по-прежнему будет отображаться по всей ширине страницы. , основной столбец и столбец поля! Как вы можете видеть на изображении ниже, DT::datatable находится ниже гистограммы, но его следует размещать рядом с ним только в главном столбце.

У меня простой вопрос, знаете ли вы, как отображать DT::datatable только в главном столбце 1014 * книги Tufte html? Вы можете увидеть фрагмент кода, который производит DT::datatable

Большое спасибо за вашу помощь.

enter image description here

```{r high-range-cv, echo = FALSE, fig.fullwidth = FALSE}
sketch = htmltools::withTags(table(
  class = 'display',
  thead(
    tr(
      th(rowspan = 2, 'Indicator'),
      th(colspan = 2, 'Highest Variability'),
      th(colspan = 2, 'Lowest Variability')
    ),
    tr(
      lapply(rep(c('Country', 'CV'), 2), th),
      th("Diff")
    )
  )
))

diff_ind %>%
  select(ind_name, max_cty, max, min_cty, min, diff) %>%
  datatable(colnames = c("Indicator", "Country", "Max", "Country", "Min", "Diff"),
            container = sketch,
            rownames = FALSE,
            filter = 'top', 
            extensions = 'FixedColumns',
            options = list(pageLength = 6,
                           autowidth = TRUE,
                           columnDefs = list(list(width = '50px', targets = c(2, 4, 5)),
                                              list(width = '100px', targets = c(1, 3)),
                                              list(width = '300px', targets = 0)
                           ),
                           scrollX = TRUE,
                           fixedColumns = TRUE)) %>%
  formatRound(c("max", "min", "diff") , 2)
```

1 Ответ

3 голосов
/ 30 января 2020

Как ответили в https://github.com/rstudio/DT/issues/762, используйте аргумент ширины в DT::datatable(), чтобы добиться цели:

DT::datatable(iris, width = '55%', options = list(scrollX = TRUE))
...