2016-10-14 14 views
1

I次のコードを持っている:R最初と最後の観測が設定

df1<-data.frame(rep(sample(1:100,5),4),(sample(seq(as.Date('2010/01/01'), as.Date('2016/01/01'), by="day"), 20)),rep("A",20)) 
names(df1)<-c("ID","Date","Letter") 
df2<-data.frame(df1$ID,(sample(seq(as.Date('2010/01/01'), as.Date('2016/01/01'), by="day"), 20)),rep("B",20)) 
names(df2)<-c("ID","Date","Letter") 
df3<-data.frame(df1$ID,(sample(seq(as.Date('2010/01/01'), as.Date('2016/01/01'), by="day"), 20)),rep("C",20)) 
names(df3)<-c("ID","Date","Letter") 
data<-rbind(df1,df2,df3) 

私は最初の日付と

したがって、各文字とIDのための最後の日付を見つけているやろうとしています結果は、第1カラムID、第2カラムレター、第3カラム第1オカレンスおよび第4カラム最後に出現する4列のデータフレームとなる。

どのような援助が

+0

を使用して、あなたはこれまでに何をしようとしたのですか? – Rentrop

+0

この種の作品ですが、実際にはそうではありません: '集合体(日付〜ID +文字、データ、FUN =範囲)'。私は、data.tableやdplyrのようなグループ化された操作のための素敵な構文について設計されたパッケージを試してみることをお勧めします。 – Frank

答えて

1

をいただければ幸いにこれを試してみてください:

MIN <- aggregate(Date~ID+Letter, data, min) 
MAX <- aggregate(Date~ID+Letter, data, max) 
d <- merge(MIN, MAX, by = c("ID", "Letter")) 
+1

AWESOME!どうもありがとうございます!私はRには新しく、この問題には長続きしていません。ちょうど私が必要としたい:) –

0

data.table

library(data.table) 
setDT(data)[, .(MINDate = min(Date), MAXDate = max(Date)), by = .(ID, Letter)] 
関連する問題