是否可以在DT数据表中添加复选框?

时间:2018-07-11 00:27:17

标签: r dt

我想问一下是否可以在done数据表中添加带有复选框的列。我尝试使用DT适用于rep(TRUE,5),但不适用于rhandsontable

DT

1 个答案:

答案 0 :(得分:3)

是的,有可能。

我们可以为此使用datatable扩展名Select(有关详细信息,请参见here)。

这是一个最小的RMarkdown示例:

---
title: "Untitled"
output: html_document
---

```{r}
library(DT)
library(tidyverse)
datatable(
    iris %>% rowid_to_column("Row") %>% mutate(Row = ""),
    rownames = FALSE,
    extensions = "Select",
    options = list(
        columnDefs = list(list(className = "select-checkbox", targets = 0, orderable = FALSE)),
        select = list(style = "os", selector = "td:first-child")))
```

这产生

enter image description here

一些评论:

  1. 我们通过Select加载extensions = "Select"扩展名。有关潜在兼容性问题的详细信息,请参见here

  2. 我们将行号添加为新列,然后将所有行号设置为空字符串"";这有点hack-y,但是如果我们保留行名(=行号),则它们会显示在沿复选框中。我发现创建了一个新的空列,然后设置rownames = FALSE可确保我们在空列中仅具有复选框。然后,orderable = FALSE中的columnDefs确保此列不可排序。