괜찮 았어, 지금 막 R으로 시작하고 다소 순간 붙어 있습니다. 선거 결과가있는 데이터 집합이 있고 사람의 유일한 식별자는 이름이있는 문자열 변수입니다. 많은 정치인들이 한 번 이상의 선거에 참여할 때 한 번 이상 등장합니다.태그가 시간 차이로 복제 됨, ID 생성
각 정치인을 식별 할 ID를 생성하고 싶습니다. 그러나 일부 이름은 더 일반적이며 실제로 다른 사람을 식별합니다. 이러한 경우를 시차를 고려하여 선택하고 싶습니다. 즉, 외모 사이에 30 년 이상이 있으면 같은 이름이 다른 사람에게 속합니다.
각 사건의 차이를 계산했으며, 발생 사이에 30 년 이상 차이가있을 때마다 모든 후속 사건이 다른 사람의 것이라고 기록합니다. 나는 루프로 도넛을 써 왔지만, 내가 원하는 방식대로 작동시키지 못했고, 이것을 해결할 더 관용적 인 방법이 있다고 생각한다.
다음 이름 변수 및 레코드를 사용하여 각 사람에 대해 고유 한 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