如何使用R标记DataTable结果中的最后一行
我想标记(例如粗体)使用DT包生成的数据表中的最后一行。 假设我们有一个带有iris数据集的表:如何使用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(
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:(.我只能帮助解决问题,请参见上文。