Блестящий интерактивный график с выбранной шкалой Лайкерта

Я создал несколько шкал Likert с пакетом R «likert» и хотел бы отображать каждую из них блестящими, когда выбран переключатель этого. Примерные весы:

a <- sample(rep((1:5),5))
b <- sample(rep((1:5),5))
c <- data.frame(sapply(data.frame(a), factor))
d <- data.frame(sapply(data.frame(b), factor))
scaledc <- likert(c)
scaledd <- likert(d)

Блестящие коды:

ui <- fluidPage(
  titlePanel("Survey"),
  sidebarLayout(
    sidebarPanel(
      selectInput("type",
                  "Plot Type",
                  choices = c("Likert"="bar",
                              "Density"="density",
                              "Heatmap"="heat"), selected="Likert"),
      radioButtons("qtype", 
                    "Question type:",
                    c("Agreement"="scaledc", "Helpfulness"="scaledd"),
                selected="scaledc")
  ),


# Show a plot of the generated distribution
mainPanel(
  tabsetPanel(
    tabPanel("Yearly Data", plotOutput("distPlot1"))
      )
    )
  )
)



#server
server <- function(input, output) {  
  output$distPlot1 <- renderPlot({plot(input$qtype, type=input$type)+
      ggtitle("How agree are you with following statements?")}, height = 1000)

}

Блестящая возвращенная ошибка «нужны конечные значения« ylim »». Я думаю, это потому, что input$qtype не передает правильную информацию команде plot, но я не знаю, как это исправить. Заранее благодарю!


person dorayin    schedule 08.12.2017    source источник
comment
Код, который вы предоставляете, не является самостоятельным воспроизводимым примером. Пожалуйста, добавьте достаточно кода, чтобы его было легко запускать. Я заметил, что вызов plot попытается построить ggScaled и bar, что потерпит неудачу.   -  person Andrew Chisholm    schedule 08.12.2017


Ответы (1)


Я только что решил проблему. Отсутствующие коды на сервере:

  scale <- reactive({
   get(input$qtype)
})
  output$dat <- renderPrint({
   scale()
})

А затем сделайте график с масштабом(), чтобы показать выбранный график.

person dorayin    schedule 08.12.2017