私はRの質問を持っています.1つの文でどのように表現するかさえ確信があり、これに対する答えをまだ見つけることができませんでした.
「交差」させたい2つのデータフレームがあり、2つの列で列の値が一致するすべての行を見つけます。2 つの intersect() ステートメントと which() ステートメントを && で接続しようとしましたが、どちらも私が望むものをまだ与えていません。
これが私の言いたいことです。2 つのデータ フレームがあるとします。
> testData
Email Manual Campaign Bounced Opened Clicked ClickThru Unsubscribed
1 stack@overflow.com EIFLS0LS 1 0 0 0 0 0
2 stack@exchange.com EIFLS0LS 1 0 0 0 0 0
3 data@frame.com EIFLS0LS 1 0 0 0 0 0
4 block@quote.com EIFLS0LS 1 0 0 0 0 0
5 ht@ml.com EIFLS0LS 1 0 0 0 0 0
6 tele@phone.com EIFLS0LS 1 0 0 0 0 0
> testBounced
Email Campaign
1 stack@overflow.com 1
2 stack@overflow.com 2
3 data@frame.com 2
4 block@quote.com 1
5 ht@ml.com 1
6 lap@top.com 1
ご覧のとおり、Email 列に交差する値と、Campaign 列に交差する値があります。両方の列が一致する testData のすべての行が必要です。
すなわち:
Email Manual Campaign Bounced Opened Clicked ClickThru Unsubscribed
1 stack@overflow.com EIFLS0LS 1 0 0 0 0 0
2 block@quote.com EIFLS0LS 1 0 0 0 0 0
3 ht@ml.com EIFLS0LS 1 0 0 0 0 0
編集:
これらの列を見つける際の私の目標は、元の列の行を更新できるようにすることです。したがって、私が望む最終的な出力は次のとおりです。
> testData
Email Manual Campaign Bounced Opened Clicked ClickThru Unsubscribed
1 stack@overflow.com EIFLS0LS 1 1 0 0 0 0
2 stack@exchange.com EIFLS0LS 1 0 0 0 0 0
3 data@frame.com EIFLS0LS 1 0 0 0 0 0
4 block@quote.com EIFLS0LS 1 1 0 0 0 0
5 ht@ml.com EIFLS0LS 1 1 0 0 0 0
6 tele@phone.com EIFLS0LS 1 0 0 0 0 0
これが重複している場合はお詫び申し上げます。ご協力いただきありがとうございます。
EDIT2::
私は for ループを使用することになりましたが、何も素晴らしいことはありませんが、効率的ではありません。ただし、データセットは十分に小さかったので、すぐに実行できました。誰かがそれを行うための迅速なRスタイルの方法を持っているなら、私はそれを見てうれしいです!