Eu tenho este quadro de dados:
dataf <- tibble(A = sample(c(TRUE, FALSE), 10, replace = T),
+ B = sample(c(TRUE, FALSE), 10, replace = T),
+ C = sample(c(TRUE, FALSE), 10, replace = T),
+ group = c(rep("grp1", 3), rep("grp2", 3), rep("grp3", 4)))
> dataf
# A tibble: 10 × 4
A B C group
<lgl> <lgl> <lgl> <chr>
1 TRUE TRUE TRUE grp1
2 FALSE TRUE TRUE grp1
3 TRUE TRUE TRUE grp1
4 TRUE TRUE TRUE grp2
5 FALSE TRUE TRUE grp2
6 TRUE FALSE TRUE grp2
7 TRUE FALSE FALSE grp3
8 TRUE FALSE TRUE grp3
9 FALSE FALSE TRUE grp3
10 FALSE FALSE FALSE grp3
Quero agregar as linhas pelo grupo de variáveis. Se em uma coluna existir um TRUE
, a TRUE
estará lá, caso contrário FALSE
. Por exemplo, na grp1
coluna A tem TRUE
, FALSE
e TRUE
. Como tem um TRUE
, o agregado deve ser TRUE
para grp1
a coluna A
. Da mesma forma, grp3
, a coluna B deve, FALSE
pois não tem TRUE
nela.
O quadro de dados resultante deve ficar assim:
A B C groupp
<lgl> <lgl> <lgl> <chr>
1 TRUE TRUE TRUE grp1
2 TRUE TRUE TRUE grp2
3 TRUE FALSE TRUE grp3
Alguma ideia de como conseguir isso?
1) dplyr Usando a entrada na Nota no final use
across
withany
. No final mova agroup
coluna para ser a última coluna.dando
2) Base R ou somente com base R:
dando
Observação
dataf produzido pelo código na questão não é reproduzível, pois usa números aleatórios,
set.seed(...)
portanto usamos o seguinte.Você pode usar
reframe
o que dá