[ad_1]
I want to write a case_when
code in a dplyr
pipeline. However, I am trying to add multiple cases within it.
For example: If a have the following data frame
id | purchases |
---|---|
a | need |
a | want |
a | none |
b | want |
b | need |
c | need |
c | need |
c | want |
d | none |
d | none |
I want to summarize the output so that case when the first 2 observations per each id are needs and case when the observation “none” is not put in consideration then put yes
in a new column. If there’s no need or want for a given id then none
, else no
The output should be the following:
|id|output|
|–|———|
|a|no|
|b|no|
|c|yes|
|d|none|
My code
actions %>% group_by (id) %>% arrange(id)
%>% summarise(output = case_when(first(purchases) == "need" & nth(purchases,2) =="need"~ "yes", "no"
I know the code is a bit messy, as I don’t know who to add up the second condition of neglecting none
observations when the cases would result in a yes
or no
[ad_2]