在R中聚合日期字段

时间:2012-08-27 07:38:22

标签: r aggregate

在以下数据框中

id<-c(1,1,1,1,1,3,3,3,3)
date<-c(NA,NA,"22-11-07",NA,NA,NA,NA,"23-11-07",NA)

df<-data.frame(id,date)
df$date2<-as.Date(as.character(df$date), format = "%d-%m-%y")


id     date      date2
1     <NA>       <NA>
1     <NA>       <NA>
1 23-11-07 2007-11-22
1     <NA>       <NA>
1     <NA>       <NA>
3     <NA>       <NA>
3     <NA>       <NA>
3 23-11-07 2007-11-23
3     <NA>       <NA>

有没有办法根据dateid进行汇总并得到以下数据框?

id    date2
1    2007-11-22
3    2007-11-23

2 个答案:

答案 0 :(得分:2)

这将是aggregate方法,如果这是您正在寻找的:

aggregate(date2 ~ id + date, df, c)
  id     date      date2
1  1 22-11-07 2007-11-22
2  3 23-11-07 2007-11-23

您可以使用aggregate(date2 ~ id + date, df, c)[, -2]在聚合后删除date,因为根据您的问题,您正在id和{{聚合1}}。

答案 1 :(得分:1)

你可以这样做:

na.omit(df)[,-2]

na.omit删除NAs,[,-2]删除第二列。