[R] Fwd: Widgets under renderUI Shiny
John Murtagh
john9427 at gmail.com
Sun Jun 25 00:47:12 CEST 2017
Hi All,
I am not sure if this is a relevant platform to ask but I have tried other
more related platforms and haven't had any luck so i thought i would try my
luck here.
Basically I want to generate a selectInput widget with a conditional under
renderUI in Shiny.
The number of widgets generated will depend on the number of variables a
user selects. Try as I may I have not been able to get this to work and
have had no luck in getting any help on other platforms hence why i am
asking here on the odd chance someone may be able to share his knowledge
and explain what it is I am doing wrong or a workaround that I can apply.
Below is the code I have so far (please feel free to criticize the code, I
am new to R/programming with no background). Thanks
library(shiny)
ui= fluidPage(
sidebarLayout(
sidebarPanel(
selectizeInput(inputId= "invar", label= "invar",
choices= names(iris),
selected= names(iris)[1],
multiple=T),
uiOutput("invarpdf")
),
mainPanel(
tableOutput("tab")
)
))
server= function(input, output,session) {
sorted <- reactive({
data <- iris[ ,c(input$invar)]
#print(input$invar)
data})
output$invarpdf<-renderUI({
numvar<- length(input$varnames)
{
selectInput(inputId=paste0("distinvar",input$invar),paste0("Please
Select Probability Distribution of ", input$invar),
choices = c("Normal","Uniform","Triangular"))
conditionalPanel(condition = "input.distinvarpdf=='Normal'",
textInput("invarpdfmean","Please Select Input
Variable Mean:",0.25),
textInput("invarpdfsd","Please Select Input
Variable Standard Deviation", 0.02))
conditionalPanel(condition = "input.distinvarpdf=='Uniform'",
textInput("invarpdfmin","Please Select Minimum
Input Variable Value:",0.18),
textInput("invarpdfmax","Please Select Maximum
Input Variable Value", 0.3))
conditionalPanel(condition = "input.distinvarpdf=='Triangular'",
textInput("invarpdfmin","Please Select Minimum
Input Variable Value:",0.18),
textInput("invarpdfmax","Please Select Maximum
Input Variable Value:", 0.3))
conditionalPanel(condition = "input.distinvarpdf=='Log Normal'",
textInput("invarpdfmeanlog","Please Select Mean
Log of Input Variable:",0.18),
textInput("invarpdfsdlog","Please Select
Standard Deviation Log of Input Variable:", 0.3))
}})
output$MonteCarlo <- renderPlot({
set.seed(1)
n <- input$sampleSize
if(distinvarpdf=="Normal"){
invarpdfVec <- rnorm(n,mean = as.numeric(input$invarpdfmean),sd=
as.numeric(input$invarpdfsd))
}
if(distinvarpdf=="Uniform"){
invarpdfVec <- runif(n,min = as.numeric(input$invarpdfmin),max =
as.numeric(input$invarpdfmax))
}
if(distinvarpdf=="Triangular"){
invarpdfVec <- rltriangle(n,a = as.numeric(input$invarpdfmin),b
= as.numeric(input$invarpdfmax))
}
if(distinvarpdf=="Log Normal"){
invarpdfVec <- rlnorm(n,meanlog =
as.numeric(input$invarpdfmeanlog),sdlog =
as.numeric(input$invarpdfsdlog))
}
h<- hist(distinvarpdf,
...
[Message clipped]
[[alternative HTML version deleted]]
More information about the R-help
mailing list