1 votos

¿Cómo pongo datos con múltiples valores posibles en formato Tidy?

Digamos que tengo datos que tienen un user_id, una fecha y un código de problema registrado cada vez que un usuario hace una llamada. Y quiero responder a preguntas como "¿cuántas llamadas hizo el usuario?" y "¿qué códigos de problema se registraron con más frecuencia?".

Creo que estoy al 90% con algo como lo siguiente:

ID, date, problem-code
A44, 2016-12-09, P809
A44, 2016-12-09, P810
...
A99, 2016-12-09, P809
A99, 2016-12-09, P810

Donde cada fila es un registro de llamada telefónica. Sin embargo, digamos que el primero, el usuario A44, en realidad llamó UNA VEZ, y se notificaron dos códigos de problema, mientras que A99 llamó dos veces con un único código de problema cada vez. Algo así parece incorrecto:

ID, date, problem-code
A44, 2016-12-09, [P809, P810]
...
A99, 2016-12-09, P809
A99, 2016-12-09, P810

¿Ideas?

La mejor idea que tengo hasta ahora es añadir una columna extra que sea "número de llamada" como una variable extra:

ID, date, problem-code, call-number
A44, 2016-12-09, P809, 73
A44, 2016-12-09, P810, 73
...
A99, 2016-12-09, P809, 97
A99, 2016-12-09, P810, 98

Que podría funcionar, pero entonces se rompe la cada fila es una observación (en el sentido de que era una sola llamada telefónica). Supongo que la observación sería "código del problema" y "número de llamada" sería un valor observado.

2voto

frast Puntos 1907

Hadley define datos ordenados como datos donde "cada variable es una columna, cada observación es una fila". Parece que tienes cuatro variables relevantes en tu conjunto de datos: ID , Date , problem-code et call-number . Así que tu idea de reunir los códigos de los problemas para que cada fila sea una única ID x Date x problem-code x call-number es correcto mientras el call-number indexa el ID x Date x problem-code combinaciones. De hecho, si puede garantizar que el usuario no realiza más de una llamada en un día determinado, la call-number es superflua, ya que esa fila ya estaría definida de forma única por la columna ID x Date x problem-code combinación.

0voto

avid Puntos 161

¿Cuántos códigos de problema tiene? Si sólo tiene unos pocos, podría utilizar una columna para cada código de problema, de la siguiente manera:

ID, date, P809, P810
A44, 2016-12-09, 1, 1
...
A99, 2016-12-09, 1, 0
A99, 2016-12-09, 0, 1

De lo contrario, deberá utilizar una columna que identifique la llamada telefónica. Como esto permitirá que cada llamada tenga varias filas, tendrás que hacer un poco de agrupación cuando respondas a preguntas como "¿cuántas llamadas hizo el usuario A44?".

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X