我有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年。
如果为2003年选择了b
和c
,请绘制2003年的b
与c
,依此类推。
如果在给定年份中选择了一个变量或两个以上变量,也不要执行任何操作。
library(shiny)
u <- fluidPage(
titlePanel('My analytics'),sidebarLayout(position = 'left',sidebarPanel(
checkboxInput('a','aRef',value = F),checkboxInput('b','bRef',checkboxInput('c','cRef',checkboxInput('d','dRef',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)
此代码不完整,希望我能在如何开发代码的服务器部分方面有所帮助。