У меня за 10 лет данные четырех переменных. Вот как выглядят данные
dat <- data.frame(year = rep(2001:2010, each = 50),
a = rnorm(50), b = rnorm(50), c = rnorm(50), d = rnorm(50))
dat_l <- tidyr::gather(dat, variable, value, a:d)
Я пытаюсь освоить блестящее приложение. Я хочу, чтобы мое приложение построило одну переменную относительно другой для данного года. Например, если пользователь выбирает a
и b
и 2001 год, график a
против b
для 2001 года. Если b
и c
выбрано для 2003 года, участок b
против c
для 2003 года и так далее. Также не делайте ничего, если для данного года выбрана одна переменная или более двух переменных.
library(shiny)
u <- fluidPage(
titlePanel('My analytics'),
sidebarLayout(position = 'left',
sidebarPanel(
checkboxInput('a', 'aRef', value = F),
checkboxInput('b', 'bRef', value = F),
checkboxInput('c', 'cRef', value = F),
checkboxInput('d', 'dRef', value = F),
sliderInput('yearRef','Select Year',min=2001,max=2010,value=1)
),
mainPanel(
tabsetPanel(
tabPanel('Scatter', plotOutput(outputId = 'scatter'))
)
)
)
)
s <- shinyServer(function(input, output)
{
pt1 <- reactive({
if (!input$a) return(NULL)
pdata <- dplyr::filter(dat_l, variable == input$a and year == input$yearRef)
plot(pdata$value, pdata$value)
})
output$scatter = renderPlot({pt1})
})
shinyApp(u,s)
Этот код неполон, и я надеюсь, что смогу получить некоторую помощь по разработке серверной части кода.