Reputation: 79
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)
Please help me to apply reactively the linear model and predict the new response variable The prediction of the ycol data selected from sidebar should be shown on the render table And in my app I am not getting anything I am not getting any error but the predicted data as per the selection is not shown in the app
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")
Upvotes: 0
Views: 38
Reputation: 84529
There are at least two errors:
output$table <- reactive({renderTable......
-> remove the reactive
.
in lm(input$ycol~.....
, the input$ycol
is a character string, that cannot work; replace with lm(df_ln[[input$ycol]] ~ ....
After doing these two modifications, I get the following app. Is it what you want?
Upvotes: 1