2017-02-10 4 views
0

下記の表に同じIDのエントリが複数あります。その中で、TIME列に古い日付があり、残っているものだけを削除する必要があります。複数のエントリの古いdatetime列を検索するにはどうすればよいですか?

ID  TIME 
1  1/20/2016 
1  1/21/2016 
1  1/19/2016 
1  2/10/2016 
2  1/18/2016 
2  1/19/2016 
2  1/17/2016 
3  1/16/2016 
3  1/17/2016 

Iは、正確な出力の形式が、結果の必要は一致しないはずである下記のような出力、

ID:1 1/19/2016 
ID:2 1/17/2016 
ID:3 1/16/2016 

を必要とします。

ありがとうございました。 ありがとうございます。

+0

'のDF $日付< - as.Date($ TIME、 '%のM /%D /%Y' DF)。 aggregate(date〜ID、df、min) ' – alistaire

答えて

2

dplyrパッケージでは、IDでグループ化し、フィルタリングの最下位をTIMEという値で達成できます。例えば

df <- data.frame(ID = c(1, 1, 2, 2), TIME = c('2016-01-01', '2017-01-01', '2016-12-15', '2017-12-15'), stringsAsFactors = FALSE) 
df$TIME <- as.Date(df$TIME) 


require(dplyr) 

df %>% group_by(ID) %>% top_n(n=-1, wt = TIME)` 
+0

チェーン内で' mutate'を使って日付を解析することができますが、これは良い答えです。 – alistaire

+0

このフォーマットが "1/17/2016 12:00"の場合はどうなりますか? 上記のコードは動作しますか? –

関連する問題