代码之家  ›  专栏  ›  技术社区  ›  Vector JX

如何在shiny中传递dataframe以在R中创建仪表板

  •  1
  • Vector JX  · 技术社区  · 6 年前

    我在下面提到了R中的数据帧。

    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
    

    使用上面提到的dataframe,我在R中创建了下面提到的pivot dataframe。

    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)
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   clemens    6 年前

    你可以用 tableHTML

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

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

    在服务器中,创建 中的对象 render_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)
    

    最终结果如下:

    output