他の3つの変数に応じてカウンタ変数を作成する必要があります。複数の条件でユーザーごとの累積カウンタ変数を作成する
これはこの問題の拡張質問です。 extension question 複数の消費者がAmazonで注文した状況を考えてみましょう。私は各ユーザーの成功した注文時間を数えたいと思う。注文が正常に行われた場合、カウンタ変数には自己プラス1が、失敗した注文の場合はカウンタが変わりません。明らかに、カウンター変数は時間、注文状況、ユーザーに依存します。
tが同じであるが注文ステータスが異なる場合のシナリオを考えてください。これは、行が重複していることを意味するものではなく、異なる他の列もあります。
DT <- data.table(time=c(1,2,2,2,1,1,2,3,1,1),user=c(1,1,1,1,2,3,3,3,4,4), order_status=c('f','f','t','t','f','f','t','t','t','t'))
DT
希望のカウンタ出力は次のとおりです。 '出力'はカウンタ変数です。
time user order_status output
1: 1 1 f 0
2: 2 1 f 0
3: 2 1 t 1
4: 2 1 t 1
5: 1 2 f 0
6: 1 3 f 0
7: 2 3 t 1
8: 3 3 t 2
9: 1 4 t 1
10: 1 4 t 1
joinの代わりに、おそらく 'which'はより速く同等に読み込み可能ですか? '' DT '、 '' v' = 0L ''' DT'は '' TRUE ''、 '' TRUE ''、=私のために 'cumsum'よりも。 – Frank
c(1L、rep(0L、.N-1L))の 'L'とは何ですか? – alphabetagamma
@Frank、 'DT [order_status ==" t "、which = TRUE]'は単純に '(order_status =="これは 'order_status ==" t "'( '' 'は内部的に使われている)と等価ですが、' 'r''は' 't ''の後の' 'f'' – Arun