Ршины с двухсторонней дискретной переменной: почему не работает? - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу создать приложение, которое позволит мне переключать переменные на графике с 2 дискретными переменными, но я получаю ошибку при выполнении:

Ошибка при разборе (file, keep.source = FALSE, srcfile = src, encoding = в): C: \ Users \ HH Portable \ Рабочий стол \ Досье R \ Jeux de données \ Thai / ui.R: 13: 0: неожиданный конец ввода 11:
mainPanel (plotOutput ('plot1')) 12:) ^ Предупреждение: ошибка в sourceUTF8: источник ошибок C: \ Users \ HHPORT ~ 1 \ AppData \ Local \ Temp \ RtmpekudB9 \ fileab876054ad6 [Нет доступна трассировка стека]

library(shiny)

# ----- UI ----------------------------
pageWithSidebar(

  headerPanel('Representer les variables'),
  sidebarPanel(
    selectInput('xcol', 'X Variable', names(the)),
    selectInput('ycol', 'Y Variable', names(the)
       ),
  mainPanel(plotOutput('plot1'))
)

#----- Server.r ------------------------------
library(shiny)
library(ggplot2)
# ---- Server ----------------------------------
# ---- ggplot with options ------------------------
server=shinyServer(function(input, output, session) {
  output$plot1 <- renderPlot({
    ggplot(the, aes(x=input$xcol, ..count..*100/sum(..count..))) + 
      geom_bar(aes(fill = input$ycol), position = "fill") +
      geom_text(aes( label = scales::percent(..prop..),y= ..prop.. ), 
                stat= "count", vjust = -.5)
      })
})

1 Ответ

0 голосов
/ 15 ноября 2018

Попробуйте использовать get() вокруг input$..., поскольку input$xcol и input$ycol являются строками, а aes() не принимает строки.

В следующий раз, когда вы будете публиковать вопросы, добавьте небольшой воспроизводимый пример, который помогут решить другие.

Надеюсь, это поможет.

# ---- ggplot with options ------------------------
server=shinyServer(function(input, output, session) {
  output$plot1 <- renderPlot({
    ggplot(the, aes(x=get(input$xcol), ..count..*100/sum(..count..))) + 
      geom_bar(aes(fill = get(input$ycol)), position = "fill") +
      geom_text(aes(label = scales::percent(..prop..),y= ..prop.. ), 
                stat= "count", vjust = -.5)
      })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...