私はIDのクライアント、月、金額で毎月の販売チケットを持つ1つのdata.frameを持っています。IDで条件づけされた複数の行と、他のデータフレームで与えられたその他の条件を選択します。
head(tickets)
id_client month sales
1 ID87160 2016-01-01 16875
2 ID18694 2016-01-01 448
3 ID20624 2016-01-01 16311
4 ID171683 2016-01-01 314
5 ID214926 2016-01-01 8889
6 ID82071 2016-01-01 7479
クライアントがサブスクリプションをキャンセルした瞬間があります。
head(stop_being_client)
id_client date
1 ID235005 2016-03-01
2 ID50615 2016-04-01
3 ID72078 2016-03-01
4 ID129556 2016-01-01
5 ID204060 2016-04-01
6 ID57769 2016-01-01
今、私はチケットの表に、すなわちstop_being_clientの日付より大きいチケットの月で、無加入のクライアントのいずれかのレジスタは存在しませんことを確認する必要があります。 PostgreSQLの
は簡単だろう:
SELECT
*
FROM
tickets
JOIN
stop_being_client
ON
tickets.id_client = stop_being_client.id_client
WHERE
tickets.month > stop_being_client.date;
しかし、私はこの
tickets[which(
tickets$id_client %in% stop_being_client$id_client &
tickets$month > stop_being_client$date
),]
と試みたR.でそれを行う方法を見当がつかないしかし、私は結果があることをかなり確信していますどういうわけか、日付を比較するときに両方のテーブルからid_clientを関連付ける必要があるためです。
EDIT:私は例を置く:
これはチケットdata.frameです:
id_client month sales
ID2 2016-01-01 12698
ID1 2016-01-01 8626
ID2 2016-02-01 18309
ID1 2016-02-01 15653
ID3 2016-02-01 9642
ID3 2016-03-01 18376
ID1 2016-03-01 13440
ID2 2016-03-01 2322
ID1 2016-04-01 19010
ID3 2016-04-01 7129
ID2 2016-04-01 14694
ID2 2016-05-01 4726
ID1 2016-05-01 706
ID3 2016-05-01 16995
ID1 2016-06-01 18743
ID3 2016-06-01 16725
ID2 2016-07-01 2632
これは、テーブルstop_being_clientです:
id_client date
ID1 2016-03-01
ID2 2016-04-01
だから私は検出したいですその場合には存在しないチケットの行:
01ここで
あなたは([再現可能な例]を作ることができますhttp://stackoverflow.com/questions/5963269/how -to-make-a-great-r-reproducible-example)と出力はどのように見えるでしょうか? –