0

在以下数据框中

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>

有什么方法可以基于dateand进行聚合id并获取以下数据框?

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

2 回答 2

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列,因为根据您的问题,您正在聚合和。iddate

于 2012-08-27T07:57:12.627 回答
1

你可以这样做 :

na.omit(df)[,-2]

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

于 2012-08-27T07:47:10.450 回答