根据闪亮的重新输入,使用不同的数据集和列绘制不同的反应图

时间:2017-01-26 13:29:34

标签: r shiny

我目前正在努力教自己闪亮,并且遇到了一些麻烦。 我想创建一个应用程序,其中包含用户想要绘制数据集的菜单,然后是另一个菜单,用于绘制他们想要绘制的变量(针对日期列)

我设法让反应式菜单正常工作,但我正在努力弄清楚如何“调用”所选数据集。我已经阅读了很多帖子(例如12),但似乎都没有处理多个数据集问题。

我的代码目前看起来像这样,我的问题出现在最后几行(如何进入outVar()中的mydata?!?)。

如果有人能指出我的方向会很棒!

library(shiny)
library(ggplot2)

datafiles<-c("Data/try2.txt","Data/Poland.txt","Data/Romania.txt","Data/Hungary.txt","Data/KHR.txt")


runApp(list(
  ui = bootstrapPage(
    selectInput('dataset', 'Choose Dataset', datafiles),
    selectInput('columns', 'Columns', ""),
    plotOutput('graph')
  ),

  server = function(input, output, session){
    outVar = reactive({
      mydata = read.table(paste0(input$dataset), sep = '\t', header=TRUE)
      names(mydata)

    })
    observe({
      updateSelectInput(session, "columns",
                        choices = outVar()
      )})
    output$graph<-renderPlot({data<- outVar$mydata
    plot(data$Date,data$paste0(input$columns))})
  }
))

shinyApp(ui=ui, server=server)    

1 个答案:

答案 0 :(得分:2)

我没有您的数据,但是,我使用葡萄酒质量数据来构建它。 https://archive.ics.uci.edu/ml/datasets/Wine+Quality

希望这有帮助

library(shiny)
library(tidyverse)
library(ggplot2)


datafile1 <- read_delim(file = "Data/winequality-red.csv", delim = ";")
datafile2 <- read_delim(file = "Data/winequality-white.csv", delim = ";")
# datafiles<-c("Data/try2.txt","Data/Poland.txt","Data/Romania.txt","Data/Hungary.txt","Data/KHR.txt")

datafiles <- list(datafile1, datafile2)

ui <- fluidPage(
  selectInput('dataset', 'Choose Dataset', choices = c("Red" = "1", "White" = "2")),
  selectInput('column', 'Choose column', choices = c("2" = "2", "3" = "3")),
  plotOutput('graph')
)

server = function(input, output, session){

  outVar <- reactive({
    temp <- datafiles[[as.numeric(input$dataset)]]
    temp <- temp[,c(1, as.numeric(input$column))]
  })

  output$graph <- renderPlot({
    plot(outVar())
  })
}


shinyApp(ui=ui, server=server)