闪亮的组合输入

时间:2019-05-30 10:07:39

标签: r ggplot2 shiny

我有一个数据集,该数据集包含三圈(每圈15秒),每一圈显示每秒不同的速度:

SELECT DISTINCT
  CASE WHEN sender < receiver THEN sender ELSE receiver END as PartyA,
  CASE WHEN sender < receiver THEN receiver ELSE sender END as PartyB
from `table`

我想将三个圈比较起来,但是对于第一个圈,我想使用sliderInput来仅选择15秒中的一些。我在将其添加到我的代码时遇到了一些困难。这是我目前所拥有的:

AA <- as.data.frame(cbind(c(10,12,11,12,12,11,12,13,11,9,9,12,11,10,12,9,8,7,9,8,7,9,9,8,9,7,9,10,10,10,7,6,7,8,8,7,6,6,7,8,7,6,7,8,8),
           c(rep("Lap_1",15),rep("Lap_2",15),rep("Lap_3",15))))

我应该在某个时候使用install.packages("shiny") install.packages("ggplot2") library(shiny) library(ggplot2) colnames(AA) <- c("Speed","Lap") AA$Speed <- as.numeric(as.character(AA$Speed)) ui=shinyUI( fluidPage( titlePanel("Title here"), sidebarLayout( sidebarPanel( checkboxGroupInput("lap_choose", label = "Choose the laps", choices = c("Lap_1","Lap_2","Lap_3")), sliderInput("secs_1", "Seconds in L1:", min = 0, max = 15, value = c(3,10), step=1)), mainPanel( plotOutput("Comparison")) ) ) ) server=function(input,output){ #data manipulation data_1=reactive({ return(AA[AA$Lap%in%input$lap_choose,]) }) output$Comparison <- renderPlot({ ggplot(data=data_1(), aes(Speed, fill = Lap)) + stat_density(aes(y = ..density..), position = "identity", color = "black", alpha = 0.8) + xlab("Distribution") + ylab("Density") + ggtitle("Comparison") + theme(plot.title = element_text(hjust = 0.5,size=24, face="bold")) }) } shinyApp(ui,server) 来更新secs_1,但是还不知道如何更新。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么如果“ lap”变量为“ lap_1”,则想过滤掉一些值(基于sec_1 slideInput)。

尝试在data_1函数中使用ifelse语句。

data_1=reactive({
xc <- AA[AA$Lap%in%input$lap_choose,]
gh <- ifelse(xc$Lap == "Lap_1" & xc$Speed %in% c(input$secs_1[1],input$secs_1[2]), 
 FALSE, TRUE)
return(xc[gh,])
 })