我目前正在努力教自己闪亮,并且遇到了一些麻烦。 我想创建一个应用程序,其中包含用户想要绘制数据集的菜单,然后是另一个菜单,用于绘制他们想要绘制的变量(针对日期列)
我设法让反应式菜单正常工作,但我正在努力弄清楚如何“调用”所选数据集。我已经阅读了很多帖子(例如1,2),但似乎都没有处理多个数据集问题。
我的代码目前看起来像这样,我的问题出现在最后几行(如何进入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)
答案 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)