library(shiny)
ui <- fluidPage(
titlePanel("MY APP"),
numericInput("o","No. of overs completed:",min=0,max=19,value=0),
helpText("Input values 5, 10 or 15"),
numericInput("w","No. of wickets lost:",min=0,max=9,value=0),
helpText("Input range from 0 to 9"),
numericInput("r","Runs scored:",min=0,max=300,value=0),
submitButton("Compute", icon("refresh")),
helpText("Click here to get the final score"),
verbatimTextOutput("score", placeholder = TRUE),
actionButton("ci90","90% CI"),
actionButton("ci95","95% CI"),
actionButton("ci99","99% CI"),
br(),
br(),
textOutput("lo"),
br(),
textOutput("up")
)
server = function (input, output, session){
v = reactiveValues(s=0,e=0,l90=0,l95=0,l99=0,u90=0,u95=0,u99=0)
v$s = reactive({
if(is.na(input$o)){
return(NULL)}
if(is.na(input$w)){
return(NULL)}
if(is.na(input$r)){
return(NULL)}
if(input$o==5){
s=153.757-8.79*input$w+input$r*0.704
}
else if(input$o==10){
s=101.831-2.29*input$w+input$r*0.974
}
else if(input$o==15){
s=60.207-2.513*input$w+input$r*1.009
}
else {
return(NULL)
}
return(round(s,digits = 0))
})
v$e = reactive({
if(is.na(input$o)){
return(NULL)}
if(is.na(input$w)){
return(NULL)}
if(is.na(input$r)){
return(NULL)}
if(input$o==5){
e=(568.46+((input$r-39.66)^2)*0.065+((input$w-1)^2)*7.465+(input$r-39.66)*(input$w-1)*0.223)^0.5
}
else if(input$o==10){
e=(466.45+((input$r-77.65)^2)*0.026+((input$w-2)^2)*3.773+(input$r-77.65)*(input$w-2)*0.142)^0.5
}
else if(input$o==15){
e=(208.984+((input$r-120.42)^2)*0.007+((input$w-3.51)^2)*1.282+(input$r-120.42)*(input$w-3.51)*0.048)^0.5
}
else {
return(NULL)
}
return(round(e,digits = 0))
})
output$score = renderText({
if(is.null(v$s())){
return(NULL)
}
else {
return(v$s())
}
})
observeEvent(input$ci90,{
v$l90=v(s)-1.68*v$e()
})
observeEvent(input$ci95,{
v$l95=v$s()-1.96*v$e()
})
observeEvent(input$ci99,{
v$l99=v$s()-2.62*v$e()
})
observeEvent(input$ci90,{
v$u90=v$s()+1.68*v$e()
})
observeEvent(input$ci95,{
v$u95=v$s()+1.96*v$e()
})
observeEvent(input$ci99,{
v$u99=v$s()+2.62*v$e()
})
output$lo=renderText({
if(input$ci90)
print(v$l90())
else if(input$ci95)
print(v$l95())
else if(input$ci99)
print(v$l99())
})
output$up=renderText({
if(input$ci90)
print(v$u90())
else if(input$ci95)
print(v$u95())
else if(input$ci99)
print(v$u99())
})
}