2012-08-27 128 views
0

日期字段在下面的數據幀彙總中的R

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

這將是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上聚合。

1

你可以這樣做:

na.omit(df)[,-2] 

na.omit刪除NAS與[,-2]刪除第二列。

+0

這獲得所需的輸出,但它不是真正的聚合,是嗎? – A5C1D2H2I1M1N2O1R2T1

+0

是的,但是與NAs合併的價值與合理獲取價值的價值相同,不是嗎?我沒有真正看到這一點......但你是對的。 – Pop