【问题标题】:How to pass dataframe in shiny to create dashboard in R如何在闪亮中传递数据框以在 R 中创建仪表板
【发布时间】:2018-09-21 16:23:13
【问题描述】:

我在下面提到了 R 中的一个数据框。

开发1:

ID        Date                   Value        Result
KK-112    2018-07-01 15:37:45    ACR          Pending
KK-113    2018-07-05 18:14:25    ACR          Pass
KK-114    2018-07-07 13:21:55    ARR          Accepted
KK-115    2018-07-12 07:47:05    ARR          Rejected
KK-116    2018-07-04 11:31:12    RTR          Duplicate
KK-117    2018-07-07 03:27:15    ACR          Pending
KK-118    2018-07-18 08:16:32    ARR          Rejected
KK-119    2018-07-21 18:19:14    ACR          Pending

使用上面提到的数据框,我在 R 中创建了下面提到的枢轴数据框。

Value      Pending   Pass    Accepted   Rejected   Duplicate
ACR          3        1         0          0          0
ARR          0        0         1          2          0
RTR          0        0         0          0          0

在这里只需要一点帮助来了解我如何在每月明智地使用Date 来创建一个闪亮的仪表板,它可以让我根据特定的月份范围或日期范围进行计数。

我正在使用下面提到的示例代码来传递数据帧,但它不起作用。

library(shiny)
library(dplyr)
library(shinydashboard)
ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody()
)
server <- function(input, output) {

Date<-Dev1$Date

{
Pivot<-dcast(Dev1, Value ~ Result, value.var="ID", 
             fun.aggregate=length)

Pivot$Total<-rowSums(Pivot[2:3])

}
 }
shinyApp(ui, server)

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    您可以为此使用tableHTML

    tableHTML_output() 添加到您的 UI 以显示表格:

    ui <- dashboardPage(
      dashboardHeader(),
      dashboardSidebar(),
      dashboardBody(
        tableHTML_output("mytable")
      )
    )
    

    在服务器中,在render_tableHTML() 中创建一个tableHTML 对象。您可以调整表格的外观,查看小插图了解详情。

    server <- function(input, output) {
    
      Date<-Dev1$Date
    
      {
        output$mytable <- render_tableHTML( {
          Pivot<-data.table::dcast(Dev1, Value ~ Result, value.var="ID", 
                                   fun.aggregate=length)
    
          Pivot$Total<-rowSums(Pivot[2:3])
    
          Pivot %>% 
            tableHTML(rownames = FALSE,
                      widths = rep(80, 7))
        })
    
    
      }
    }
    shinyApp(ui, server)
    

    最终的结果是这样的:

    【讨论】:

    • @clemense:我使用库(RMySQL)获取这些数据,有没有办法根据日期范围触发这些查询(例如,如果我在仪表板上选择某个日期范围或月份范围,数据自动更新)??
    • 是的,但这是一个完全不同的问题,我无法在 cmets 中回答
    • @clemense:请您相应地更改代码。
    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 2015-04-22
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多