dplyr - R Conditional evaluation when using the pipe operator %>% -


when using pipe operator %>% packages such dplyr, ggvis, dycharts, etc, how do step conditionally? example;

step_1 %>% step_2 %>%  if(condition) step_3 

these approaches don't seem work:

step_1 %>% step_2  if(condition) %>% step_3  step_1 %>% step_2 %>% if(condition) step_3 

there long way:

if(condition) { step_1 %>% step_2  }else{ step_1 %>% step_2 %>% step_3 } 

is there better way without redundancy? working dygraphs if matters.

here quick example take advantage of . , ifelse;

x<-1 y<-t  x %>% add(1) %>% { ifelse(y ,add(1), . ) } 

in ifelse if y true if add 1, otherwise return last value of x. . stand-in tells function output previous step of chain goes, can use on both branches.

edit @benbolker pointed out, might not want ifelse, here if version.

x %>%  add(1) %>%   {if(y) add(1) else .} 

thanks @frank pointing out should use { braces around if , ifelse statements continue chain.


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -