Как сделать два выпадающих меню для построения графиков в зависимости от выбранных данных - PullRequest
0 голосов
/ 06 сентября 2018
c1 <- rnorm(10,0,1)
c2 <- c(rep("txA",5),rep("txB",5))
c3 <- c(1:4,1:4,1:2)
c4 <- rep(LETTERS[1:5],2)
mydata <- data.frame(c1,c2,c3,c4)


ui <- fluidPage(
fileInput(inputId = "file",
        label = "import file"),
tableOutput("tb"),
sidebarLayout(
sidebarPanel(
  uiOutput(outputId = "aa")
),
mainPanel(textOutput("a"),
          verbatimTextOutput("info"),
          verbatimTextOutput("summary"),
          plotOutput("plot", click = "plot_click")
)
)
)

server <- function(input,output) {

output$aa <- renderUI({
    selectInput(inputId = "aa2",
            label="Select:",
            choices = colnames(mydata))
})

output$tb <- renderTable({
data <- input$file
if (is.null(data))return()
read.table(data$datapath,sep=",")
})

mysubsetdata <- eventReactive(input$aa2,{
mydata[[input$aa2]]
})


output$summary <- renderPrint({
summary(mysubsetdata())
})

output$plot <- renderPlot({
plot(mysubsetdata())
})

output$info <- renderText({
paste0("x=", input$plot_click$x, "\ny=", input$plot_click$y)
})
}
shinyApp(ui=ui, server=server)

Приведенный выше код представляет собой блестящее приложение, которое принимает любые данные. Основываясь на ваших данных, приложение покажет, как эти данные выглядят, а также предоставит графики и статистику. Однако проблема с этим приложением заключается в том, что я могу выбрать только один столбец за раз. Я хочу выбрать два столбца: один для оси X и другой для оси Y. Я хотел бы сделать следующее блестящее приложение: Есть два выпадающих меню. Один для оси X и один для оси Y со всеми столбцами моих данных (c1 ~ c4) соответственно. Так что я могу выбрать из двух выпадающих меню. Как бы я это закодировал? Еще раз спасибо!

P.S Часть кода была предоставлена ​​Pork Chop, и на этот вопрос ответила Pork Chop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...