Один dplyr
параметр может быть:
df %>%
mutate_at(vars(starts_with("cond")), ~ list(empid[. != 0]))
empid cond1 cond2 cond3 cond4
1 234 234, 7890, 38476 7890, 38476, 456 234, 7890, 456 234, 38476
2 7890 234, 7890, 38476 7890, 38476, 456 234, 7890, 456 234, 38476
3 38476 234, 7890, 38476 7890, 38476, 456 234, 7890, 456 234, 38476
4 456 234, 7890, 38476 7890, 38476, 456 234, 7890, 456 234, 38476
Если вы хотите сохранить его в длинном формате, с добавлением tidyr
:
df %>%
pivot_longer(-empid, names_to = "condition") %>%
group_by(condition) %>%
summarise(empid = list(empid[value != 0]))
condition empid
<chr> <list>
1 cond1 <int [3]>
2 cond2 <int [3]>
3 cond3 <int [3]>
4 cond4 <int [2]>