在数据帧上使用ddply,其中包含POSIXlt时间中的日期

时间:2015-04-09 23:34:17

标签: r plyr

问题:

您有一个data.frame(df),它由POSIXlt日期格式的某些列组成。

str(df)的输出如下:

$identifier : int 1 1 1 1 1 1 1 1 1 1 ... $date.time : POSIXlt, format: "2010-06-01 07:27:00" "2010-06-01 07:27:00"

如果您使用

ddply(df, identifier, summarise, min.time = min(date.tim)

您将收到类似的错误:

'names' attribute [11] must be the same length as the vector [10]

下面提到的解决方案。

1 个答案:

答案 0 :(得分:1)

问题记录在in this github issue

这基本上是数据框架无法处理POSIXlt日期。

  

" POSIXct"包含在数据框中更方便,和   " POSIXlt"更接近人类可读的形式。

问题中提到的解决方案如下

df$tm <- as.POSIXct(strptime(paste(dates, times), "%m/%d/%y %H:%M:%S"))
ddply(df, ~Var1, dim)