如何使用R标记DataTable结果中的最后一行

时间:2017-04-06 11:21:52

标签: r shiny dt

我想标记(例如粗体)使用DT包生成的数据表中的最后一行。 假设我们有一个包含虹膜数据集的表:

library(DT)
datatable(iris)

结果: enter image description here

所以我们有150行,我想加粗只有150行

修改: @BigDataScientist让我清楚这一点。我有这个:

 output$tbl <- 
    DT::renderDataTable(
      data() %>% # let's say iris data - it doesn't matter
      bind_rows(summarise(data(), SUM = "SUM", A = sum(A), B = sum(B), 
                           C = sum(C), D = sum(D), 
                           E = sum(E), F = sum(F))) %>%
      mutate(SUM = rowSums(.[2:6])),
    extensions = 'Buttons', 
    options = list(
      dom = 'Blfrtip',
      lengthMenu = list(c(-1, 5, 10, 15, 20, 25), c('All', '5', '10', '15', '20', '25')),
      buttons = list('copy',
                     list(extend = 'excel',
                          filename = 'report'),
                     list(extend = 'pdf',
                          filename = 'report'),
                     'print'),
     rownames = FALSE,
     server = FALSE
    ) %>%
    formatStyle(
     target = "row",
     fontWeight = styleEqual(dim(.)[1], "bold")
    )
 )

所以,我想在最后一行添加粗体;在这种情况下,列的SUM;到这个管道,所以一切都是一个整体(一个管道)。

3 个答案:

答案 0 :(得分:3)

如果您稍微修改一下代码,这page会对您有所帮助:

vertical-align: middle

编辑:有人要求(另外)将数据作为formatStyle( datatable(iris), 0, target = "row", fontWeight = styleEqual(dim(iris)[1], "bold") ) 传递给Shiny中的管道。好吧,我只能提供解决方法。我对管道并不熟悉,特别是如何传递几个参数。

reactive()

答案 1 :(得分:0)

除了BigDataScientist的回答,我还建议你看看:

http://rstudio.github.io/DT/functions.html

答案 2 :(得分:0)

在数据表rownames = F中禁用行名时,BigDataScientist的解决方案失败。

如果要隐藏行名并使最后一行加粗,则解决方案是无论如何都设置rownames = T然后隐藏它们。这对我有用:

library(DT)

data <- head(iris)

datatable(data, 
          rownames = T, # set rownames T
          options = list(columnDefs = list(list(visible = F, targets = 0)))) %>% # hide the rownames
  formatStyle(0, target = "row",
              fontWeight = styleEqual(dim(data)[1], "bold"))