rStudio/shinny:从渲染表计算中间值

rStudio/shinny:从渲染表计算中间值,r,shiny,rstudio,R,Shiny,Rstudio,在下面的代码中,我能够根据用户的选择对数据表进行子集划分,但我还希望根据用户输入计算并显示ohsi列的中值 用户界面 服务器.R library(shiny) datan <- read.csv("data/hsi.csv") tcols <- c("provid","st","ohsi") ocols <- c("ohsi") datax <- datan[tcols] datao <- datan[ocols] shinyServer(function(inpu

在下面的代码中,我能够根据用户的选择对数据表进行子集划分,但我还希望根据用户输入计算并显示ohsi列的中值

用户界面

服务器.R

library(shiny)
datan <- read.csv("data/hsi.csv")
tcols <- c("provid","st","ohsi")
ocols <- c("ohsi")
datax <- datan[tcols]
datao <- datan[ocols]
shinyServer(function(input, output){
rTable <- renderTable({
datax[which(datan$tnt==input$teaching & datan$sysnsys==input$system & datan$cahncah==input$type),]
})
median <- median(rTable$ohsi)
output$table1 <- rTable
output$mOut <- renderText({
paste("the median for your selection is: "m,
}) 
}  
)
库(闪亮)

数据n如果没有数据,很难给出准确的答案,但您可以将数据定义为一个反应函数,并使用它提供
renderable
renderText

shinyServer(function(input, output){
  myData <- reactive({
    datax[which(datan$tnt==input$teaching & datan$sysnsys==input$system & datan$cahncah==input$type),]
  })
  output$table1 <- renderTable({
    myData()
  })
  output$mOut <- renderText({
    m <- median(myData()$ohsi)
    paste("the median for your selection is: ", m)
  }) 
}  
)
shinyServer(功能(输入、输出){

myData要获得答案,如果您可以提供hsi.csv,或者更好地动态生成示例数据集,这将非常有帮助。当数据可用时,需要5分钟才能生成答案,而无需15分钟。谢谢您,jdharrison!您将我的数据定义为反应函数的建议正是我所需要的。非常感谢!
shinyServer(function(input, output){
  myData <- reactive({
    datax[which(datan$tnt==input$teaching & datan$sysnsys==input$system & datan$cahncah==input$type),]
  })
  output$table1 <- renderTable({
    myData()
  })
  output$mOut <- renderText({
    m <- median(myData()$ohsi)
    paste("the median for your selection is: ", m)
  }) 
}  
)