如何通过观察函数

时间:2016-08-07 10:06:10

标签: r shiny shinydashboard

我正在使用闪亮来创建一个带有价值框和一些数据表的交互式仪表板。我想通过闪亮输出中的数据框的选定行更新值框中的值。但是,我能够读取所选数据帧行的行号,但无法将它们存储到列表或向量中。

enter image description here

UI.R

shinyUI(fluidPage(
 dashboardPage(
    dashboardHeader(title = "NUS Testing"),
    dashboardSidebar(),
    dashboardBody(
    fluidRow(
      valueBoxOutput("norm")
    ),#ending of first fluid row
    fluidRow(dataTableOutput("table"))
    #fluidRow(verbatimTextOutput("x4"))
   )
   )#ending of dashboard page

))



Server.R
shinyServer(function(input,output,session){
  test=read.csv("test.csv",header = T)

  output$table = DT::renderDataTable(test,server = F)
  output$norm = renderValueBox({
    valueBox(
      paste0(summpg), "Progress", icon = icon("bicycle"),
      color = "aqua"
    )
  }) #ending of valuebox
  summpg=sum(test[,2])  
enter image description here
  x5 = observeEvent(input$table_rows_selected,{
    str(input$table_rows_selected)
  })

  #reading the data from observe event

}) #ending of shinyserver function

1 个答案:

答案 0 :(得分:0)

您是否尝试使用summpg创建反应式表达式?以下应该有效:

summpg <- reactive({
    sum(test[input$table_rows_selected, 2])
})

请注意,这会使summpg成为被动函数,因此您需要将其作为summpg()(带括号)引用到其他位置。如果您希望在所选行更改时更新总和,则需要reactive