Algo fácil, creo.Ordenar una matriz por columna de fecha textual en Mathematica
Tengo una lista de dos dimensiones (matriz) de fecha mezclada, texto y datos numéricos procedentes de un archivo CSV. Quiero poder ordenar las filas por el valor en una sola columna, que en este caso es una fecha en formato de texto. Por ejemplo:
{{1/12/2008, Bob, 123}, {28/06/2007, Alice, 456}, {19/08/2009, Charlie, 789}}
me gustaría ordenar las filas en la lista de la fecha (por lo que sale en el orden Alice, Bob, Charlie.)
Hasta el momento he pensado que puede ser que desee asignar DateList
a través de mi columna de fecha y anteponer el año, mes y día a la lista, por lo que se convierte en:
{{2008, 12, 1, Bob, 123}, {2007, 6, 28, Alice, 456}}
Entonces me quedo tener que hacer tres tipos en lugar de uno , y la necesidad de romper la matriz por año. Eso no parecía correcto y ahora estoy atascado. Sé que esto debería ser simple, pero no puedo por la vida de mí resolverlo. Cualquier puntero apreciado.
Gracias,
Tim
leyenda. Gracias, belisario, funcionó perfectamente. ¡Pasé horas revisando los documentos y nunca vi una referencia a SortBy o AbsoluteTime! –
+1, nunca antes había escuchado sobre 'SortBy'. Siempre he usado 'Sort', más funciones de clasificación personalizadas. – rcollyer
A mí también me gusta esta solución (y yo tampoco había oído hablar de AbsoluteTime). Una ligera variación es que DateList (con el que había estado jugando) también funcionará, como en: SortBy [l, DateList [{# [[1]], {"Day", "Month", "Year"}} ] &] // TableForm – tomd