Tidyverse: Reduzca las variables por grupo.
Tengo un marco de datos que se ve así:
ID pick1 pick2 pick3
1 NA 21/11/29 21/11/30
2 21/11/28 21/11/29 NA
3 21/11/28 NA 21/11/30
4 NA 21/11/29 21/11/30
Cada participante (ID) pudo elegir 2 fechas de 3 opciones. Ahora quiero resumir las fechas seleccionadas para obtener un tibble como este:
ID date1 date2
1 21/11/29 21/11/30
2 21/11/28 21/11/29
3 21/11/28 21/11/30
4 21/11/29 21/11/30
Sin embargo, no puedo hacer que funcione solo con las funciones de tidyverse. He empezado a usar esta biblioteca pero no pude encontrar una solución para mi problema en línea.
davy.ai
Puede utilizar la función
gather()
del paquetetidyr
para transformar el marco de datos al formato largo, luego eliminar las filas con valoresNA
, agrupar porID
y seleccionar las primeras y segundas fechas utilizandoslice()
ymutate()
, y finalmente volver a dar forma a los datos al formato ancho utilizandospread()
. Aquí hay un código de ejemplo:Esto debería darle el tibble deseado:
“`r
A tibble: 4 x 3
Groups: ID [4]
1 1 21/11/29 21/11/30
2 2 21/11/28 21/11/29
3 3 21/11/28 21/11/30
4 4 21/11/29 21/11/30
“`