根据R中的日期(POSIXlt)对自定义对象类型的向量进行排序

时间:2013-11-27 15:49:01

标签: r sorting

我已经定义了一个自定义类myType,如下所示:

myType <- function(s="", n="", m=c())
{
    structure(list("start"=s, "name"=n, "moves"=m), class="myType")
}

在我的程序中,我生成了vectormyType个对象。我需要做的是使用myType的{​​{1}}元素对start个对象进行排序,这是myType类型。

有人能告诉我要走的路吗?

1 个答案:

答案 0 :(得分:0)

您为什么使用POSIXlt?你需要操纵日期时间属性,如小时,分钟,......?如果不是,最好使用POSIXct'. POSIXlt`是一个列表并且很难操作。

据说,如果ll是您的对象列表,则可以使用orderstart插槽对其进行排序。我们的想法是首先创建一个更简单的POSIXct矢量。

ll[order(unlist(lapply(ll,function(x)as.POSIXct(x$start))))]

其中ll可以生成为:

ll <- lapply(1:10,function(x)
    myType(as.POSIXlt(Sys.time()+sample(1000:2000,1))))