購入データを含むデータセットを持っていますが、何かを見つけようとして立ち往生しています。それに飛び込む前に、私のデータは次のようになります。
> 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 未満であるレコードの値と一致する必要があることです。