Coś łatwego, jak sądzę.Sortuj tablicę według kolumny tekstowej w Mathematica
Mam dwuwymiarową listę (tablicę) mieszanych danych daty, tekstu i danych liczbowych pochodzących z pliku CSV. Chcę móc sortować wiersze według wartości w jednej kolumnie, która w tym przypadku jest datą w formacie tekstowym. Na przykład:
{{1/12/2008, Bob, 123}, {28/06/2007, Alice, 456}, {19/08/2009, Charlie, 789}}
Chciałbym sortować wiersze w liście do dnia (tak, że wychodzi w kolejności Alice, Bob, Charlie.)
Dotychczas myślałem że może chcę map DateList
całej mojej kolumnie data i poprzedzić rok, miesiąc i dzień do listy, więc staje się:
{{2008, 12, 1, Bob, 123}, {2007, 6, 28, Alice, 456}}
Wtedy pozostaje mi konieczności zrobić trzy rodzaje zamiast jednego i konieczność rozbicia tablicy o rok. To nie wydaje się właściwe, a teraz utknąłem. Wiem, że to powinno być proste, ale nie mogę tego zrozumieć. Wszelkie wskazówki są mile widziane.
Dzięki,
Tim
legendy. Dzięki Belizariusz, który działał idealnie. Spędziłem wiele godzin przeglądając dokumenty i nigdy nie widziałem odniesienia do SortBy, ani AbsoluteTime! –
+1, nigdy wcześniej nie słyszałem o "SortBy". Zawsze używałem opcji "Sortuj" oraz niestandardowych funkcji sortowania. – rcollyer
Ja też lubię to rozwiązanie (i ja też nie słyszałem o AbsoluteTime). Niewielka różnica polega na tym, że funkcja DateList (z której grałem) będzie działać tak samo, jak: SortBy [l, DateList [{# [[1]], {"Day", "Month", "Year"}} ] &] // TableForm – tomd