2015-02-06 1 views
1

나는 다음과 같은 오류를 : 나는 반짝하는 새로운 오전 나는 R의 패키지입니다 홍채 데이터 세트를 사용하여 함께 간단한 응용 프로그램을 넣어 위해 노력하고 있어요 :

Error in $.shinyoutput(*tmp*, X) : 
    Reading objects from shinyoutput object not allowed 

아래의 스크립트를 사용하여. ui.R

library(shiny) 
shinyUI(fluidPage(
    titlePanel("Dynamic user interface-RenderUI"), 
    sidebarLayout(
    sidebarPanel(
     selectInput("data", "Select the Database of your choice", 
        c("iris"="Iris","mtcars"="mt","trees"="tree")), 
     br(), 
     helpText("The folowing SelectInput drop down choices are dynamically polulated based on dataset selected"), 
     br(), 
     uiOutput("X-Axis"),#X-Axis is coming from renderui inserver 
     br(), 
     uiOutput("Y-Axis")#Y-Axis is coming from renderui inserver 
    ), 
     mainPanel(
     plotOutput("p") 
    ) 
) 
)) 

및 server.R

library(shiny) 
shinyServer(function(input, output) { 
    var <-reactive({ 
    switch(input$data, 
    "iris"=names(iris), 
    "mtcars"=names(mtcars), 
    "trees"=names(trees) 
    ) 

    }) 

    output$X-Axis <- renderUI({ 
      selectInput("x-axis", "Select the X-Axis variable",choices = var()) 


    }) 


    output$Y-Axis <- renderUI({ 

    selectInput("y-axis", "Select the Y-Axis variable",choices = var()) 


    }) 
    output$p <- renderPlot({ 

    attach(get(input$data)) 

    plot(x=get(input$x-axis),y=get(input$y-axis),xlab =input$x-axis,ylab = input$y-axis) 

    }) 
}) 

답변

1

당신은 부적절 이름을 사용하고 있습니다. x-axis과 같은 이름을 사용하는 경우 input$'x-axis' 또는 더 쉽게 input[["x-axis"]]으로 참조해야합니다. 귀하의 selectInput에서 당신의 이름은 귀하의 사물이며 반대의 경우도 마찬가지입니다.

# UI.r 

library(shiny) 
shinyUI(fluidPage(
    titlePanel("Dynamic user interface-RenderUI"), 
    sidebarLayout(
    sidebarPanel(
     selectInput("data", "Select the Database of your choice", 
        c("Iris"="iris","mt"="mtcars","tree"="trees")), 
     br(), 
     helpText("The folowing SelectInput drop down choices are dynamically polulated based on dataset selected"), 
     br(), 
     uiOutput("X-Axis"),#X-Axis is coming from renderui inserver 
     br(), 
     uiOutput("Y-Axis")#Y-Axis is coming from renderui inserver 
    ), 
    mainPanel(
     plotOutput("p") 
    ) 
) 
)) 

server.R

library(shiny) 
shinyServer(function(input, output) { 
    var <-reactive({ 
    switch(input$data, 
      "iris"=names(iris), 
      "mtcars"=names(mtcars), 
      "trees"=names(trees) 
    ) 

    }) 

    output[["X-Axis"]] <- renderUI({ 
    selectInput("x-axis", "Select the X-Axis variable",choices = var()) 


    }) 


    output[["Y-Axis"]] <- renderUI({ 

    selectInput("y-axis", "Select the Y-Axis variable",choices = var()) 


    }) 
    output$p <- renderPlot({ 

    attach(get(input$data)) 

    plot(x=get(input[["x-axis"]]),y=get(input[["y-axis"]]),xlab =input[["x-axis"]],ylab = input[["y-axis"]]) 

    }) 
}) 
관련 문제