私は2つのパラメータ(日付とステータス)を持つdata.tableを持っています。元のテーブルに基づいて新しい列を挿入したいのですが。基本計算のグループ関数
データ・ルール:
は- Status列が含まれている唯一の "0" と "1"
- 日付の欄には、常に秒:)
新しい変数によって増加されます。
- グループ:ステータスの各グループまたはサイクルに番号を付ける場合、ステータスの順番は(0,1)です。ステータスが「0」で始まり、ステータスが「0」になったときに1サイクルが完了したことを意味します。
- CYCLE_TIME:グループ毎
- group_0のサイクルタイムを計算する:特定のグループ内の状態0の時間を計算する
- GROUP_1:特定のグループ内のステータス1の時間を計算する
例えば、簡単な入力:
データを生成するコード:
dd <- data.table(date = c("2015-07-01 00:00:12", "2015-07-01 00:00:13","2015-07-01 00:00:14","2015-07-01 00:00:15", "2015-07-01 00:00:16", "2015-07-01 00:00:17","2015-07-01 00:00:18", "2015-07-01 00:00:19", "2015-07-01 00:00:20","2015-07-01 00:00:21", "2015-07-01 00:00:22", "2015-07-01 00:00:23","2015-07-01 00:00:24", "2015-07-01 00:00:25"), status = c(0,0,0,0,1,1,1,0,0,1,1,1,1,0))
新しいパラメータを含む出力は次のとおりです。
実際に私はいくつかの基本的な方法で行っている、
- 主なアイデアは、次のとおりです。現在のステータスは0とされている場合次のステータスは1で、それを1つのグループとしてマークします。
- アイデアはうまくいくかもしれませんが、問題は計算時間が長すぎます。
私はこの場合の簡単溶液
を(http://stackoverflow.com/questions/5963269)[偉大R再現性の例を作るには?] – zx8754