Shiny中的反应性应用程序帮助

时间:2018-04-28 10:46:37

标签: r shiny

library(shiny)
ui <- fluidPage(

# Application title
titlePanel("Linear model DARP"),
sidebarLayout(
sidebarPanel(
  selectInput('ycol', 'Select a resonse variable', names(df_ln)[c(12,13,14)],
              selected=names(df_ln)[[1]]),
  sliderInput(inputId = "area",
              "select the service region area(km^2):",
              min= 170,
              max= 8000,
              value=1001),
  sliderInput(inputId = "crit..peak",
              label="Choose Peak demand(Requests):",
              min=10,
              max=150,
              value=40),
  sliderInput(inputId ="Speed",
              label = "Please selct you average Speed(mph):",
              min=10,
              max=50,
              value = 15)
),


mainPanel(
  tableOutput("table"),
  h5('The data shows the fleetsize required for your selection of input variables')
   )
  )
)
 df_ln<-read.csv("F:/Project/Programme/ML/DAR Machine Learning TR Part 
 A/train_darp_ln.csv")
 server <- function(input, output) {

  output$table <- reactive({
renderTable({

Linearmodel_DARP<-lm(input$ycol~area+crit..peak+speed,data = df_ln)
new_demand<-data.frame(area=input$area,crit..peak=input$crit..peak,speed=input$Speed)

fleetsize<-predict(Linearmodel_DARP,newdata=new_demand)
round(exp(fleetsize),0)

    })
     })

         }

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

请帮我反应性地应用线性模型并预测新的响应变量 从侧边栏选择的ycol数据的预测应该显示在渲染表上。在我的应用程序中,我没有得到任何东西 我没有收到任何错误,但根据选择的预测数据未在应用程序中显示

dput(head(df_ln))
structure(list(area = c(2217.7, 6537.4, 1705.5, 5634, 1260.5, 
4797.7), density = c(0.13753, 0.016826, 0.18469, 0.021477, 0.25862, 
0.027305), crit..CV = c(0.63954, 0.81437, 0.49909, 0.33935, 0.39148, 
0.17489), crit..peak = c(49L, 26L, 41L, 20L, 39L, 18L), TW = c(21L, 
47L, 54L, 48L, 17L, 41L), L = c(569L, 576L, 391L, 390L, 458L, 
392L), s = c(7L, 3L, 3L, 6L, 3L, 2L), speed = c(18L, 26L, 20L, 
30L, 24L, 33L), circuity = c(1.3284, 1.1494, 1.4597, 1.2725, 
1.0486, 1.0792), cap = c(9L, 9L, 5L, 8L, 5L, 7L), mrt = c(1.5452, 
2.3743, 1.5962, 2.6065, 2.1278, 2.6228), veh = c(4.605170186, 
3.433987204, 4.718498871, 3.951243719, 4.060443011, 3.526360525
), veh.hrs = c(6.665569062, 5.523778231, 6.496186582, 5.71857256, 
5.816843267, 5.256713817), veh.km = c(9.555940819, 8.781874769, 
9.491918855, 9.119769942, 8.994897097, 8.753221378)), row.names = c(NA, 
6L), class = "data.frame")

1 个答案:

答案 0 :(得分:1)

至少有两个错误:

  • output$table <- reactive({renderTable...... - &gt;删除reactive

  • lm(input$ycol~.....中,input$ycol是一个字符串,无法正常工作;替换为lm(df_ln[[input$ycol]] ~ ....

完成这两项修改后,我得到以下应用程序。这是你想要的吗?

enter image description here