DT :: datatable –格式化选定的列?

Mar*_* L. 3 r knitr r-markdown dt

您能帮我DT :: datatable列格式化吗?例如,我有这张桌子:

DT::datatable(iris, 
          class = 'row-border stripe hover compact', 
          rownames = F, 
          autoHideNavigation = T,
          options = list(pageLength = nrow(summary.month),
                         searching = F,
                         paging = F,
                         info = F))
Run Code Online (Sandbox Code Playgroud)

我需要设置:

  • 第一栏:粗体,左对齐
  • 第三栏:粗体,右对齐

我发现我应该使用column.ClassName,但是如何在R中设置类样式?

然后,datatable的html输出将用于R markdown文档中。

Dan*_*ers 8

自从最初提出这个问题以来已经有一段时间了,但我刚刚遇到了同样的问题。这是一个更简单的解决方案,不需要编辑源数据或调用 JS,而是使用DT 包本身中的函数

DT::datatable(iris, 
          class = 'row-border stripe hover compact', 
          rownames = F, 
          autoHideNavigation = T, escape =FALSE) %>% 
  formatStyle(columns = c("Sepal.Length"), fontWeight = 'bold', `text-align` = 'left') %>% 
  formatStyle(columns = c("Petal.Length"), fontWeight = 'bold', `text-align` = 'right')
Run Code Online (Sandbox Code Playgroud)


Mak*_*212 5

到目前为止,使它起作用的唯一方法是先手动设置HTML标签,然后使用 escape = FALSE

这里我们总结Sepal.LengthboldHTML标签:

iris$SepalLength2 <- paste0("<b>", iris$Sepal.Length, "</b>")>
Run Code Online (Sandbox Code Playgroud)

然后使用,escape = FALSE以便解析HTML标记。

datatable(iris, 
          class = 'row-border stripe hover compact', 
          rownames = F, 
          autoHideNavigation = T, escape =FALSE)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

编辑:

对于左/右对齐,您可以将 <p align ="left"></p>

所以: iris$SepalLength2 <- paste0('<p align ="right"><b>', iris$Sepal.Length, '</b></p>')

请注意,我既不是HTML专家,也不是该特定库的专家,但这似乎是获得所需结果的一种方法。

  • 谢谢,它有效。我使用了&lt;div style ...&gt;而不是&lt;p&gt;并进行了文本对齐等样式设置。 (2认同)