私は膨大なデータフレームを持ち、何百万もの電子メールアドレスとそのオープンタイムを持っています。以下は私のデータフレームのサブセットです。大きなデータで最大数の時間間隔を見つける
dput(droplevels(data))
structure(list(email_address_hash = structure(1:3, .Label = c("0004eca7b8bed22aaf4b320ad602505fe9fa9d26",
"00198ee5364d73796e0e352f1d2576f8e8fa99db", "35c0ef2c2a804b44564fd4278a01ed25afd887f8"
), class = "factor"), open_times = c(" 04:39:24 10:39:43", " 21:12:04 07:05:23 06:31:24",
" 09:57:20 19:00:09")), row.names = c(NA, -3L), .Names = c("email_address_hash",
"open_times"), .internal.selfref = <pointer: 0x0000000007b60788>, class = c("data.table",
"data.frame"))
私のデータフレームの構造が、私はこれらの2つのゴール
目的を達成したい
str(data)
Classes ‘data.table’ and 'data.frame': 3 obs. of 2 variables:
$ email_address_hash: Factor w/ 36231 levels "00012aec4ca3fa6f2f96cf97fc2a3440eacad30e",..: 2 16 7632
$ open_times : chr " 04:39:24 10:39:43" " 21:12:04 07:05:23 06:31:24" " 09:57:20 19:00:09"
- attr(*, ".internal.selfref")=<externalptr>
です: -
1)を開始します00:00:00時間から1時間の間隔をとり、私が得た顧客あたりのエントリの数を数えます。私たちの最初のケースでは、最初の行のopen_timesは04:39:24と10:39:43です。したがって、b/w 4:00:00- 5:00:00とb/w 10:00:00と11:00:00の1つのカウントを取得し、b/w 00: 00:00と01:00:00などです。エントリの最大数を持つ最初の2つのカウントだけが必要です。この場合、それは4:00:00-5:00:00と10:00:00-11:00:00であり、他の列のそれぞれの数です。
2)時間を変更することは可能ですか同じ場合に1時間から1.5時間または2時間の間隔?以下のより詳細な説明を提供するために
は私の所望の出力 の画像は、私がビッグデータを持っていて、この問題を解決するためのいくつかの効率的な方法を提案してくださいです。私の質問に投票するのではなく、あなたに不明な点がある場合は、教えてください。
@akrun – user110244