我正在为在线市场创建报告工具。我想添加一个复选框“优惠券”,其中只有在优惠券字段中具有正值的观察值被选中。条件根据Shiny输入在dplyr中筛选
所以,在ui.R我:
checkboxInput("checkbox", label = "Coupon", value = TRUE)
这是工作的罚款。
在server.RI有:
Coupon_Select <- reactive({
if(input$checkbox == TRUE){0}
else {-1}
})
和
Data_Select <- reactive({
Orders %>%
filter(Region %in% Region_Select(), Community.Type %in% Type_Select(),
Coupon > Coupon_Select()
)
})
这里的想法是,如果复选框被选中,dplyr只会选择观察其 '优惠券' 值> 0。如果它没有被检查,它会选择'Coupon'值> -1的观测值。不过,我现在意识到它不起作用,因为没有价值的优惠券被赋予NA - 因此,无论复选框的值如何,我只会获得优惠券值> 0的观察值。
所以,我的问题是,我怎样才能使dplyr输出只有在复选框被选中时不是NA的优惠券值的观测值以及没有被选中时的所有观测值?
如何在被动的Data_Select中包含'if' /'else'?所以如果复选框被选中,你包括'!is。na(Coupon)'作为过滤器中的一个条件,否则你只用另外两个条件来完成过滤器。 – aosmith
你的意思是有两个不同的Orders%>%filter()语句吗?如果是这样,我想再添加3个或4个其他类似条件的复选框,因此很快就会变得难以管理。 – SFuj