2016-04-29 7 views
0

行と条件を組み合わせるには?私はこのようなデータセットを持って

> data 
    ID AccessTime ReferrerCode 
    101 01:17:40  910 
    103 01:27:53  135 
    103 01:33:12  222 
    202 02:04:11  921 
    202 03:40:30  106 
    103 03:45:02  734 

そして私はこのように私のデータセットを変換したい、

データが同じIDと同じ時間を持っている場合私の条件はReferrerCodeが結合されますされ
> data 
ID ReferrerCode 
101 910 
103 135 222 
202 921 
202 106 
103 734 

AccessTimeのそれを実現させるために私は何をすべきですか?

+0

dputでいくつかのサンプルデータを提供できますか?アクセス時間はどのような形式ですか?私は時間をifentifyingし、reshape2でデータをキャストする列を追加したい –

答えて

0

あなたはReferrerCode使用中characterこのように、結果を取得したい場合:私はAccessTimePOSIXlt形式であることを前提と

aggregate(ReferrerCode ~ ID + hour(AccessTime), data, FUN=function(x) paste(x, collapse=" "))[,c(1,3)] 
     ID ReferrerCode 
1 101   910 
2 103  135 222 
3 202   921 
4 103   734 
5 202   106 

characterから

data$AccessTime <- as.POSIXlt(data$AccessTime, format="%H:%M:%S") 
2

aggregate()baseと、AccessTimeから時間を抽出するsub()との解があります。

aggregate(ReferrerCode ~ ID + sub(':.*$', '', AccessTime), c, data=data)[,-2] 
# ID ReferrerCode 
#1 101   910 
#2 103  135, 222 
#3 202   921 
#4 103   734 
#5 202   106 
関連する問題