1

購入データを含むデータセットを持っていますが、何かを見つけようとして立ち往生しています。それに飛び込む前に、私のデータは次のようになります。

> df.f[df.f$CUST_ID == badIDs[1], c(1, 20, 4, 11, 13)]

CUST_ID CI2_TRANS_DT HR_SID NDS_AMT PROD_NUM
   1    2013-12-14     10    0.00    a5g4324
   1    2013-12-14     10    0.00    k4jn42k
   1    2013-12-14     10    0.00  f3ft52f3
   1    2013-12-14     10    0.00    f454fn
   1    2013-12-14     10    0.00    l2k41m
   1    2013-12-14     10    2.25  nb24b2x3
   1    2013-12-14     10    0.00    k1s4m6
   1    2013-12-14     10    0.00    1z34fl
   1    2013-12-14     10    0.95  f3ft52f3
   1    2013-12-17      6    4.45    v0d45j
   1    2013-12-17      6    0.00    a5g4324
   1    2013-12-17      6    4.75  g6b673va
   1    2013-12-17      6    0.00    f454fn
   1    2013-12-19      7   -4.75  bh431d11
   1    2013-12-20      6    4.75  bh431d11
   2    2013-12-14      6    4.75  g6b673va
   2    2013-12-15      6    3.75  nb24b2x3
   2    2013-12-15      6   -3.75  nb24b2x3
   2    2013-12-16      6    5.90  bh431d11

上記の変数は、顧客 ID 番号、取引日、時間帯、販売金額、製品番号の順です。私が抱えている問題は、NDS_AMT の負の値にあります。値が負の場合は、対応する購入があるかどうかを確認する必要があり、ある場合は負の値が残る可能性があります。対応する購入がない場合は、そのレコードをデータから削除する必要があります。たとえば、最後から 2 番目のレコードは負であり、同じ日に対応する購入がないため、削除する必要があります。翌日に同じ商品が購入されますが、2 回の訪問であるため、対応する購入としてカウントできません。

これをどうするか考えてみて、組み込みの適用関数、交差関数、複製関数を検討しましたが、関数に関係なく、コードの書き方がわかりません。どんな助けでも大歓迎です。

編集: Henrik の要求に従って、NDS_AMT が負の値を持つ新しい顧客のデータに 4 つの新しい行を追加しました。レコードはデータ内にとどまる必要があります。「対応する購入」の条件は、CUST_ID、CI2_TRANS_DT、HR_SID、および PROD_NUM の値がすべて、NDS_AMT が 0 未満であるレコードの値と一致する必要があることです。

4

1 に答える 1