如何进一步聚合R中的筛选数据
以下是我的输入的外观:如何进一步聚合R中的筛选数据,r,shiny,data-visualization,R,Shiny,Data Visualization,以下是我的输入的外观: OrderDate | Company | ApprovalID | Amount |State, 2009-01-02 | A | AC | 200 | NY, 2009-01-05 | A | BT | 20000 | NY, 2009-01-04 | A | AC | 500 | CO, 2009-01-02 | B | XY | 2000 | TX, 2009-05-41 | B | XY | 30 | TX, 2009-04-21 | D | CR | 2222
OrderDate | Company | ApprovalID | Amount |State,
2009-01-02 | A | AC | 200 | NY,
2009-01-05 | A | BT | 20000 | NY,
2009-01-04 | A | AC | 500 | CO,
2009-01-02 | B | XY | 2000 | TX,
2009-05-41 | B | XY | 30 | TX,
2009-04-21 | D | CR | 2222 | BR,
我让我的用户输入日期范围和公司
tabPanel("Plot", fluid = TRUE,
sidebarLayout(
sidebarPanel(id = 'sidebar',
dateRangeInput("dateinput","Selects Dates",start = Sys.Date()-30,end = Sys.Date()),
selectInput("companyinput", "Select Comp", choices=choices1,multiple = TRUE,selected = NULL)
),
因此,如果用户选择2009-01-01和2009-01-31之间的日期以及公司A,我希望有一个表显示:
OrderDate | Company | ApprovalID | Amount |State ,
2009-01-02 | A | AC | 200 | NY ,
2009-01-05 | A | BT | 20000 | NY,
2009-01-04 | A | AC | 500 | CO,
filtered%
过滤器(as.Date(OrderDate)>输入$dateinput[1],
as.Date(OrderDate)>=输入$dateinput[2],
)
}
否则{
bc3%>%
过滤器(as.Date(OrderDate)>输入$dateinput[1],
as.Date(OrderDate)>=输入$dateinput[2],
CompanyNameID==输入$companyinput
)
但在同一个仪表板中,我想显示不同的图表:
进一步按有效金额和金额进行汇总,如条形图所示
AC花费了700英镑,BT花费了20000英镑(之前的过滤器或订单日期和公司完好无损)
然后是其他图表
按状态和金额汇总,即,让我们说一个显示状态和金额的条形图(再次说明用户选择的订单日期和公司)
有没有一种方法可以做到这一点,或者将反应性输入存储为数据帧,这样我就可以按照自己的意愿操作它
谢谢,
HV您确定
input$companyinput
将NULL
吗?如果选择input
,它应该始终是一些字符串;如果是用户输入,我仍然认为它将是一个字符串,尽管它可能是空的(!nzhar(…)
).然而,我认为你的不等式是错的,你是说
和(我确实在输入中看到NULL
的时间是在一个闪亮的应用程序的启动阶段,大约半秒钟。当反应块启动但输入小部件还没有完全设置好时,它们可能是NULL
。我想这是闪亮::req
的推动力)
filtered <- reactive({
if(is.null(input$companyinput)){
bc3 %>%
filter(as.Date(OrderDate) > input$dateinput[1],
as.Date(OrderDate) >= input$dateinput[2],
)
}
else{
bc3 %>%
filter(as.Date(OrderDate) > input$dateinput[1],
as.Date(OrderDate) >= input$dateinput[2],
CompanyNameID == input$companyinput
)