2014-12-31 3 views
1

Я не могу решить эту проблему с помощью блестящего приложения, чтобы создать график штрихов. Ошибка, которая появляется, не передается аргументом. Код приведен ниже.Ошибка штрихового графика с помощью Shiny R

Ui.R

shinyUI(fluidPage(
    titlePanel("An Overview of my skillsets"), 

    sidebarLayout(
    sidebarPanel(     
        selectInput("dataset", "Select Company", 
           choices = c("Accenture", "Auroch", "Quintiles", "Others")), 

        numericInput("obs", "Number of observations to view:", 10)), 
    mainPanel(plotOutput("")) 
) 
)) 

Server.R

library(shiny) 

shinyServer(function(input, output) { 

    TechSkills <- c("X", "Y", "Z", "A", "B", "C") 

    TS_ACC <-c(25,26,22,12,22,27) 
    TS_AUR <- c(8,6,7,5,4,7) 
    TS_QUIN <- c(12,12,14,24,17,27) 
    ACCENTURE=data.frame(TechSkills, TS_ACC) 
    AUROCH=data.frame(TechSkills, TS_AUR) 
    QUINTILES=data.frame(TechSkills, TS_QUIN) 

    datasetInput <- reactive({ 
    switch(input$dataset, 
      "Accenture" = ACCENTURE, 
      "Auroch" = AUROCH, 
      "Quintiles" = QUINTILES, 
      "Others" =OTHERS) 
    }) 
    output$dataset <- renderPlot({ 
    barplot(data=dataset) 
    }) 
}) 

ответ

1

Есть несколько вещей, которые могли бы быть неправильно в этом коде:

  1. plotOutput (""), должны иметь outputId, т. е. 'dataset'
  2. barplot не принимает данные параметров, вы должны указать 'h восемь»и '' arg.names

Таким образом, код должен выглядеть как-то так:

ui.R

shinyUI(fluidPage(
    titlePanel("An Overview of my skillsets"), 

    sidebarLayout(
    sidebarPanel(     
       selectInput("dataset", "Select Company", 
          choices = c("Accenture", "Auroch", "Quintiles", "Others")), 

       numericInput("obs", "Number of observations to view:", 10)), 
mainPanel(plotOutput('dataset')) 
) 
)) 

server.R

library(shiny) 

TechSkills <- c("X", "Y", "Z", "A", "B", "C") 

TS_ACC <-c(25,26,22,12,22,27) 
TS_AUR <- c(8,6,7,5,4,7) 
TS_QUIN <- c(12,12,14,24,17,27) 
ACCENTURE=data.frame(TechSkills, TS_ACC) 
AUROCH=data.frame(TechSkills, TS_AUR) 
QUINTILES=data.frame(TechSkills, TS_QUIN) 


shinyServer(function(input, output) { 


    datasetInput <- reactive({ 
    switch(input$dataset, 
      "Accenture" = ACCENTURE, 
      "Auroch" = AUROCH, 
      "Quintiles" = QUINTILES, 
      "Others" =OTHERS) 
    }) 
    output$dataset <- renderPlot({ 
    d <- datasetInput() 
    barplot(height=d[,2],names.arg=d[,1]) 
    }) 
}) 
1

Слишком поздно, но вот вариант с малоизвестной функцией setNam es

output$mybarplot <- renderPlot({ 
    d1 = datasetInput() 
    barplot(setNames(d1[,2],d1[,1])) 
    }) 
+0

Привет, Я пытался вызвать это приложение, используя R Markdown. Однако я получаю сообщение об ошибке при запуске файла R Markdown, поскольку путь не распознается. Можете ли вы помочь? Это код, который я использовал. shinyAppDir ( system.file ("~/R/x86_64-pc-linux-gnu-library/3.1/Trials", package = "shiny"), options = list ( width = "100%", height = 550 ) ) –

Смежные вопросы