我觉得很容易。在Mathematica中按文本日期列对数组进行排序
我有一个来自CSV的混合日期,文本和数字数据的二维列表(数组)。我希望能够通过单列中的值对行进行排序,在这种情况下,这是一个文本格式的日期。例如:
{{1/12/2008, Bob, 123}, {28/06/2007, Alice, 456}, {19/08/2009, Charlie, 789}}
我想用
到目前为止,我已经想好了日期(这样出来的顺序爱丽丝,鲍勃,查理。)在列表中的行进行排序我可能要地图DateList
在我的日期列且在前面加上年份,月份和日期到列表中,因此它变成:
{{2008, 12, 1, Bob, 123}, {2007, 6, 28, Alice, 456}}
然后我留下不必做三大类,而不是一个,并且需要逐年打破阵容。这看起来不正确,现在我卡住了。我知道这应该是简单的,但我不能为我的生活弄清楚。任何指针赞赏。
感谢,
添
传奇。感谢belisarius,完美的工作。我花了数小时浏览文档,从未看到对SortBy或AbsoluteTime的引用! – 2010-12-11 03:50:20
+1,之前从未听说过'SortBy'。我一直使用'Sort',加上自定义的排序功能。 – rcollyer 2010-12-11 04:50:12
我也喜欢这个解决方案(我也没有听说过AbsoluteTime)。稍微有一点变化就是DateList(我一直在玩)也会起作用,如:SortBy [l,DateList [{#[[1]],{“Day”,“Month”,“Year”}} ]&] // TableForm – tomd 2010-12-11 11:02:03