在以下数据框中
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>
有没有办法根据date
和id
进行汇总并得到以下数据框?
id date2
1 2007-11-22
3 2007-11-23
答案 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]
删除第二列。