DT和Shiny:使用过滤器格式化数据表中的数字

empi75

我有一个带有数据表的闪亮应用程序,我想做两件事:

  1. 我想将过滤器添加到DTOutput的顶部
  2. 我想将表格中的数字格式化为百分比。

我只能实现其中一个。因此,如果仅使用过滤器(请参阅代码中的尝试3),则可以使用,但无法将数字格式化为百分比。如果我尝试格式化数字(请参阅代码中的attpemts#1和#2),则过滤器会消失,但数字格式正确。我还会在控制台中收到警告消息:

“当expr产生数据表对象时,renderDataTable会忽略...参数”

这对我没有多大帮助,因为我是Shiny和R的新手。

我找到了有关格式化数字或过滤表的教程并回答了问题,但是显然我遗漏了一些东西...如果您可以引导我找到答案或发现下面的代码中的错误,我将非常感谢。

app.R在此处重现

library(shiny)
library(dplyr)
library(DT)

# Define UI 
ui <- fluidPage(
  actionButton("start", "Click to Start") 
  DTOutput('tbl1'),
  DTOutput('tbl2'),
  DTOutput('tbl3')
)

# Define Server
server = function(input, output) {

  #Attempt #1: gives me the formatted numbers but no filter.
  x <- eventReactive(input$start, iris %>% dplyr::filter(Species == "setosa") %>% datatable %>% formatPercentage(2:3, digits=2))
  output$tbl1<-  DT::renderDT(x(), filter="top")


  #Attempt #2: gives me the formatted numbers but no filter.
  y <- eventReactive(input$start, iris %>% dplyr::filter(Species == "setosa"))
  output$tbl2 <-  DT::renderDT(y() %>% datatable %>% formatPercentage(2:3, digits=2), filter="top")


  #Attempt #3: I get the filter, if I don't try to format the numbers
  z <- eventReactive(input$start, iris %>% dplyr::filter(Species == "setosa"))
  output$tbl3 <-  DT::renderDT(z(), filter="top")


}

# Run the application 
shinyApp(ui = ui, server = server)
什里

好像datatable()忘了在第三次尝试中使用该功能。这就是您需要的-

library(shiny)
library(dplyr)
library(DT)

# Define UI 
ui <- fluidPage(
  actionButton("start", "Click to Start"),
  DTOutput('tbl3')
)

# Define Server
server = function(input, output) {

  z <- eventReactive(input$start, {
    iris %>% dplyr::filter(Species == "setosa")
  })

  output$tbl3 <-  DT::renderDT({
    datatable(z(), filter="top") %>% 
      formatPercentage(2:3, digits=2)
  })     
}

# Run the application 
shinyApp(ui = ui, server = server)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在R DT中以斜体和红色字体格式化行向量(数据表)

数据表以编程方式应用过滤器

如何使用DT包中的renderDataTable()格式化数据表的列?

闪亮的数据表使用过滤器显示所有数据

使用带有数据表中复选框的多选下拉列表对列应用过滤器

闪亮的DT数据表-重置过滤器

使用过滤器选项从数据表中选择行:RShiny

在Shiny中使用过滤后的数据表

数据表{DT}:如何格式化PDF导出中的列?

仅当组中存在给定行时,数据表才对组应用过滤器

数据表选择和搜索过滤器

更新数据表保持过滤器和排序

DT数据表R Shiny中的条件格式

如何重置数据表中的过滤器

数据表中的自定义过滤器地址和日期范围

我如何使用角度js过滤器格式化数组中的值

Yajra 数据表同时使用搜索和自定义过滤器

数据表过滤器删除

如何在过滤器数据表中使用全局过滤器

R, Shiny - 使用过滤器创建交叉表计数特定值

如何格式化数据表中显示的日期

格式化数据表中的日期列

使用过滤器输入显示数据帧表以过滤行

在Java8中使用过滤器和映射提取数据库列数据

使用 Pandas 和 numpy Python 格式化数据表日期时间值

通过连接过滤器从选定的复选框和多选 Jquery 中查找数据到数据表?

使用动态过滤器聚合R Shiny中的数据

动态格式化数据工厂数据集中最后修改的过滤器

R使用过滤器和管道过滤以日期为条件的大型数据框