0

聚合 R 数据帧时,日期转换为整数:

例如,如果我想为以下数据框中的每个 Id 获取最大日期:

> df1 <- data.frame(id = rep(c(1, 2), 2), b = as.Date(paste("01/01/", 2000:2003, sep=''), format = "%d/%m/%Y"))
> df1
  id          b
1  1 2000-01-01
2  2 2001-01-01
3  1 2002-01-01
4  2 2003-01-01
> aggregate(x = list(b = df1$b), by = list(id = df1$id), FUN = "max")
  id     b
1  1 11688
2  2 12053

为什么 R 会这样?(以及在返回的数据框中保留日期类列的最佳方法是什么?)

谢谢你的帮助,

4

1 回答 1

1

这对我来说是 R 版本 3,也许更新有一些变化,所以我建议你更新 R :) 至于这个版本的 R,你是否在聚合后尝试过 as.Date() 函数?在你的例子中,应该是这样的:

    dtf2<-aggregate(x = list(b = df1$b), by = list(id = df1$id), FUN = "max")
    dtf2$b<-as.Date(dtf$b)

您还可以在 as.Date 中添加 'origin' 选项,例如

    as.Date(dtf$b, origin='1970-01-01') 

UPD:当 R 将日期视为整数时,它的起源是 1970 年 1 月 1 日。

希望这会有所帮助。

于 2013-06-14T10:45:51.697 回答