私は、2つ(またはそれ以上)の異なるプログラムに参加しているクライアントを削除したいプログラム参加者のデータセットを持っています。異なるIDを持つクライアントと、同じプログラムに複数回参加したクライアントを選択し、これらの2つのサブセットに参加することを希望してこの作業を回避しようとしましたが、失敗しています。ここでは、少量のサンプルで私の試みは、次のとおりです。特定の条件に基づいて重複を削除します
Client.ID = c(1, 2, 2, 3, 3)
Program = c("P1", "P2", "P2", "P1", "P2")
From = as.Date(c("2016-10-01", "2016-01-25", "2016-07-01", "2016-04-06", "2016-05-01"))
To = as.Date(c("2017-03-31", "2016-06-30", "2016-11-27", "2016-06-03", "2016-06-02"))
df = tibble(Client.ID, Program, From, To)
df
# A tibble: 5 x 4
Client.ID Program From To
<dbl> <chr> <date> <date>
1 1 P1 2016-10-01 2017-03-31
2 2 P2 2016-01-25 2016-06-30
3 2 P2 2016-07-01 2016-11-27
4 3 P1 2016-04-06 2016-06-03
5 3 P2 2016-05-01 2016-06-02
distinct(df, Client.ID, .keep_all = TRUE) #this selects distinct cases nicely
df[duplicated(df$Client.ID) & !duplicated(df$Program),] #but this does not work
私はフォーラムで他の質問を見てみましたが、私は唯一例えば、ものを見つけ、hereとhere、二つの変数に基づいて重複している契約。私は別のことをしたい:最初の変数で重複するケースを削除するが、とは異なるの値を2番目の変数に入れる。同じプログラムに複数回参加したクライアントは、データセットにとどまるべきです。
何か助けてくれてありがとう! library(dplyr)
と
私はそれを理解するのにしばらくかかりましたが、私はそれを得ました!どうもありがとうございます。 – malasi