Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用R标记DataTable结果中的最后一行_R_Shiny_Dt - Fatal编程技术网

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

如何使用R标记DataTable结果中的最后一行,r,shiny,dt,R,Shiny,Dt,我想标记(例如粗体)使用DT包生成的数据表中的最后一行。 假设我们有一个带有iris数据集的表: library(DT) datatable(iris) 结果: 所以我们有150行,我想加粗只有150行 编辑: @大数据科学家让我澄清一下。我有这个: output$tbl <- DT::renderDataTable( data() %>% # let's say iris data - it doesn't matter bind_rows(

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

library(DT)
datatable(iris)
结果:

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

编辑: @大数据科学家让我澄清一下。我有这个:

 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")
    )
 )
output$tbl%#比方说虹膜数据-这无关紧要
绑定行(汇总(data(),SUM=“SUM”,A=SUM(A),B=SUM(B),
C=总和(C),D=总和(D),
E=和(E),F=和(F)))%>%
变异(总和=行总和([2:6]),
扩展='按钮',
选项=列表(
dom='Blfrtip',
lengthMenu=列表(c(-1,5,10,15,20,25),c('All','5','10','15','20','25'),
按钮=列表('复制',
列表(扩展='excel',
文件名=‘报告’,
列表(扩展='pdf',
文件名=‘报告’,
“打印”),
rownames=FALSE,
服务器=FALSE
) %>%
格式样式(
target=“行”,
fontWeight=styleEqual(尺寸(.)[1],“粗体”)
)
)
所以,我想在最后一行加上粗体字;在这种情况下,列的总和;到这个管道,所以所有的东西都是一个整体(一条管道)

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

formatStyle(
  datatable(iris), 0, target = "row",
  fontWeight = styleEqual(dim(iris)[1], "bold")
)
编辑:要求(另外)将数据作为
reactive()
传递,管道处于闪亮状态。嗯,我只能提供一个解决办法。我不太熟悉管道,尤其是如何传递几个参数

shinyApp(
  ui = fluidPage(fluidRow(column(12, DT::dataTableOutput('tbl')))),
  server = function(input, output) {
    irisReact <- reactive(iris)
    dimIrisReact <- reactive(dim(iris)[1])    
    output$tbl = DT::renderDataTable(
      irisReact() %>% datatable() %>% formatStyle(
        0, target = "row",
        fontWeight = styleEqual(dimIrisReact(), "bold")
      )
    )
  }
)
shinyApp(
ui=fluidPage(fluidRow(第12列,DT::dataTableOutput('tbl')),
服务器=功能(输入、输出){
irisReact%formatStyle(
0,target=“行”,
fontWeight=styleEqual(dimIrisReact(),“粗体”)
)
)
}
)
如果您稍微调整一下代码,这将对您有所帮助:

formatStyle(
  datatable(iris), 0, target = "row",
  fontWeight = styleEqual(dim(iris)[1], "bold")
)
编辑:要求(另外)将数据作为
reactive()
传递,管道处于闪亮状态。嗯,我只能提供一个解决办法。我不太熟悉管道,尤其是如何传递几个参数

shinyApp(
  ui = fluidPage(fluidRow(column(12, DT::dataTableOutput('tbl')))),
  server = function(input, output) {
    irisReact <- reactive(iris)
    dimIrisReact <- reactive(dim(iris)[1])    
    output$tbl = DT::renderDataTable(
      irisReact() %>% datatable() %>% formatStyle(
        0, target = "row",
        fontWeight = styleEqual(dimIrisReact(), "bold")
      )
    )
  }
)
shinyApp(
ui=fluidPage(fluidRow(第12列,DT::dataTableOutput('tbl')),
服务器=功能(输入、输出){
irisReact%formatStyle(
0,target=“行”,
fontWeight=styleEqual(dimIrisReact(),“粗体”)
)
)
}
)

除了BigDataScientist的答案之外,我还建议大家看看:


除了BigDataScientist的答案之外,我还建议大家看看:


当禁用datatable
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"))
库(DT)
数据%#隐藏行名
formatStyle(0,target=“行”,
fontWeight=styleEqual(尺寸(数据)[1],“粗体”))

当禁用datatable中的行名时,BigDataScientist的解决方案失败
rownames=F

如果要隐藏行名并将最后一行加粗,解决方案是无论如何设置
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"))
库(DT)
数据%#隐藏行名
formatStyle(0,target=“行”,
fontWeight=styleEqual(尺寸(数据)[1],“粗体”))

我猜您要求最后一行加粗,而不考虑具体值(此处150)?是的,准确地说。我猜您要求最后一行加粗,而不考虑具体值(此处150)?是的,准确地说。谢谢,这正是我想要的!我只需要在我闪亮的应用程序中测试它,然后我会告诉你一切是否正常。不幸的是,我无法处理反应对象上的dim函数。我有这样的东西:反应数据管道
%%formatStyle(target=“row”,fontwweight=styleEqual(dim(.)[1],“bold”)
但这不起作用。让我看看,您希望数据变量(此处为iris)是被动的,对吗?我也编辑了我的帖子。我无法通过magrittr传递和使用多个输入:(.我只能帮助解决问题,见上文。谢谢,这正是我想要的!我只需要在我闪亮的应用程序中测试它,然后告诉你一切是否正常。不幸的是,我无法处理反应对象上的dim函数。我有这样的东西:反应数据管道…
%%>%formatStyle(target=“row”,fontwweight=styleEqual(dim(.)[1],“bold”)
但这不起作用。让我看看,您希望数据变量(此处为iris)是被动的,对吗?我也编辑了我的帖子。我无法帮助传递和使用magrittr:(.我只能帮助解决问题,请参见上文。