我有两个数据框,“ uno”和“ dos”,我想考虑变量“ tipo”和“ fecha”来制作反应条形图,即我要显示带有数据框“ uno”和组的条形图按“ tipo”或“ fecha”,然后对数据框“ dos”执行相同操作。我只能显示按一个变量分组的条形图,但是我不知道如何使用多个变量进行分组。我是个新手,所以很难完全理解代码的逻辑。希望您能帮助我,谢谢!
library(shiny)
library(tidyverse)
library(ggplot2)
uno <- data.frame(id = rnorm(10, 0, 1),
tipo = c("a", "a", "a", "b", "b", "b", "b", "c", "c", "a"),
fecha = c(12, 12, 12, 13, 13, 14, 15, 16, 16, 16))
dos <- data.frame(id = rnorm(10, 0, 1),
tipo = c("c", "a", "c", "c", "b", "b", "b", "c", "c", "a"),
fecha = c(11, 11, 12, 13, 13, 15, 15, 15, 16, 16))
datafiles <- list(uno, dos)
ui <- fluidPage(
selectInput('dataset', 'Choose Dataset', choices = c("uno" = "1", "dos" = "2")),
plotOutput('graph')
)
server = function(input, output, session){
outVar <- reactive({
temp <- datafiles[[as.numeric(input$dataset)]]
})
output$graph <- renderPlot({
ggplot(outVar(), aes(fecha)) + geom_bar()
})
}
shinyApp(ui=ui, server=server)
也许这就是您想要的。您可以添加第二个selectInput来选择变量并将其映射x
到您的调用中ggplot
。由于输入是一个字符,因此您必须使用例如.data
代词:
library(shiny)
library(tidyverse)
library(ggplot2)
uno <- data.frame(id = rnorm(10, 0, 1),
tipo = c("a", "a", "a", "b", "b", "b", "b", "c", "c", "a"),
fecha = c(12, 12, 12, 13, 13, 14, 15, 16, 16, 16))
dos <- data.frame(id = rnorm(10, 0, 1),
tipo = c("c", "a", "c", "c", "b", "b", "b", "c", "c", "a"),
fecha = c(11, 11, 12, 13, 13, 15, 15, 15, 16, 16))
datafiles <- list(uno, dos)
ui <- fluidPage(
selectInput('dataset', 'Choose Dataset', choices = c("uno" = "1", "dos" = "2")),
selectInput('var', 'Choose Variable', choices = c("tipo", "fecha"), selected = "fecha"),
plotOutput('graph')
)
server = function(input, output, session){
outVar <- reactive({
temp <- datafiles[[as.numeric(input$dataset)]]
})
output$graph <- renderPlot({
ggplot(outVar(), aes(.data[[input$var]])) + geom_bar()
})
}
shinyApp(ui=ui, server=server)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句