Tengo este DF
structure(list(patients = c(1, 1, 1, 2, 2, 2, 2, 3, 3, 3), adm1 = c(1,
1, 1, 1, 1, 1, 1, 1, 1, 1), adm2 = c(0, 1, 1, 0, 0, 1, 1, 0,
0, 1), adm3 = c(0, 0, 1, 1, 0, 0, 0, 0, 0, 0), adm4 = c(0, 0,
0, 0, 1, 0, 0, 0, 1, 0)), class = "data.frame", row.names = c(NA,
-10L))
#> patients adm1 adm2 adm3 adm4
#> 1 1 1 0 0 0
#> 2 1 1 1 0 0
#> 3 1 1 1 1 0
#> 4 2 1 0 1 0
#> 5 2 1 0 0 1
#> 6 2 1 1 0 0
#> 7 2 1 1 0 0
#> 8 3 1 0 0 0
#> 9 3 1 0 0 1
#> 10 3 1 1 0 0
y quiero obtener esta tabla que básicamente se basa en valores distintos para cada paciente de las otras columnas.
structure(list(patients = c(1, 2, 3), adm1 = c(1, 1, 1), adm2 = c(1,
1, 1), adm3 = c(1, 1, 0), adm4 = c(0, 1, 1)), class = "data.frame", row.names = c(NA,
-3L))
#> patients adm1 adm2 adm3 adm4
#> 1 1 1 1 1 0
#> 2 2 1 1 1 1
#> 3 3 1 1 0 1
Puedes probar aggregate
como a continuación
> aggregate(. ~ patients, DF, max)
patients adm1 adm2 adm3 adm4
1 1 1 1 1 0
2 2 1 1 1 1
3 3 1 1 0 1
o
> aggregate(. ~ patients, DF, FUN = function(x) +(sum(x) > 0))
patients adm1 adm2 adm3 adm4
1 1 1 1 1 0
2 2 1 1 1 1
3 3 1 1 0 1
o
> aggregate(. ~ patients, DF, FUN = function(x) +(any(x > 0)))
patients adm1 adm2 adm3 adm4
1 1 1 1 1 0
2 2 1 1 1 1
3 3 1 1 0 1
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras