У меня есть следующий фрейм данных:
library(tidyverse)
dat <- tribble(
~category, ~status, ~content,
1, "control", "A",
1, "control", "Z",
1, "treated", "A",
1, "treated", "Z",
1, "control", "B",
2, "control", "C",
2, "control", "D",
2, "treated", "C",
2, "treated", "F"
) %>%
arrange(category, status, content)
dat
Это выглядит так:
> dat
category status content
<dbl> <chr> <chr>
1 1 control A
2 1 control B
3 1 control Z
4 1 treated A
5 1 treated Z
6 2 control C
7 2 control D
8 2 treated C
9 2 treated F
Что я хочу сделать, это сгруппировать его по category
, а затем проверить различия и пересечение content
между , управление и обработано .
Выход для разностей только для control
:
category differences_control_only
1 B
2 D
Выход для разностей только для treated
:
category differences_treated_only
1 not_available
2 F
Выход для пересечения между treated
и control
:
category intersection
1 A
1 Z
2 C
Итак, в конце дня , будет 3 кадра данных в качестве вывода. Как этого добиться?
В этом примере группировка основана только на одном столбце (category
), в реальных случаях группировка может быть в несколько столбцов.