私はちょうどRで始まっていて、今はやや固まっています。私は選挙結果を持つデータセットを持っており、人の唯一の識別子は彼/彼女の名前を持つ文字列変数です。多くの政治家は複数の選挙に参加しているため、複数回出席する。タグ時間差で重複して、IDを生成
各政治家を識別するIDを生成したいと思います。しかし、いくつかの名前はより一般的であり、実際には異なる人物を識別します。発生の時間差を見ることでこれらのケースを区別したいと思います。つまり、出現間に30年以上がある場合、同じ名前が別の人に属します。
私は各出現間の違いを計算しました。出現間に30年以上の違いがあるたびに、その後の出現はすべて別の人物に属するという記録を作りたいと思います。私はループで手を洗いましたが、私が望むように動作させることはできませんでした。これを解決するためのより慣れた方法があると思います。
次に、name変数とレコードを使用して各自の一意のIDを作成したいと思いますが、これはid()関数を使って簡単に行うことができます。
df <- df[order(df$name, df$year),]
# difference between each occurence, NA for first occurence
df$timediff <- ave(df$year, df$name, FUN=function(x) c(NA,diff(x)))
# absolute difference to first occurence, haven't used this so far
df$timediff.abs <- ave(df$year, df$name, FUN=function(x) x - x[1])
ありがとうございました。 – ilprincipe