일부 데이터 관리를 위해 R을 사용하려고합니다.비슷한 관찰 R 합치기
여러 개의 변수 (+200 열)와 많은 관찰 (+10,000 행)의 데이터 프레임이 있습니다. 누락 된 데이터가 많이 있고 복제 된 또는 완료되지 않은 관측이 있습니다. 한 관찰
여기이 데이터 세트 예 (감사의 @aosmith에)입니다 한 사람 (1 개 행 = 1 유일한 사람) 같아야한다 : 내 관찰을 병합 할
dat = data.frame(email = c(rep(c("[email protected]", "[email protected]"), each = 2), NA),
name = c(NA, "Alfred C.", NA, "Bob V.", "Cathy L."),
var1 = c(2, 2, NA, NA, 1),
var2 = c(1, NA, 3, NA, 1),
var3 = c(NA, NA, 1, 0, 2),
var4 = c(0, NA, NA, NA, NA))
결국 있도록 한 행은 한 사람과 같습니다. 사람을 식별하기 위해 이메일을 사용합니다. 이메일이 없으면 모든 관측을 유지하고 싶습니다 (이메일이 누락 된 경우 R이 관측치를 삭제하는 것을 원하지 않습니다. 이메일이 없으면 유일한 관찰로 간주되는 모든 관찰).
우리가 동일한 이메일 주소를 발견 할 수있는 시간 동안 우리는 우리가 발견 한 후속 관측 (동일한 전자 메일 주소로)에서 얻은 데이터가 누락 된 경우 각 변수의 필드를 업데이트해야합니다. 하나 이상의 변수에 대해 이미 존재하는 데이터가있는 경우, R은 새로운 값을 저장할 때마다 R이 생성하기를 원합니다.
다음은 이해하기 쉬운 예입니다. 정보 때를 유지하여 같은 이메일과 행을 결합하는이 같은이 뭔가 (속으로
email name var1 var2 var3 var4 ... var200
[email protected] <NA> 2 1 NA 0 ... .
[email protected] Alfred C. 2 NA NA NA ... .
[email protected] <NA> NA 3 1 NA ... .
[email protected] Bob V. NA NA 0 NA ... .
<NA> Cathy L. 1 1 2 NA ... .
을 한 행에서 같은 사람에 대한 모든 정보를 유지하지만 :
우리는 다음과 같이 변환 할 필요가 우리는 사람이 이메일 주소와 동일 함을 확인할 수 없습니다 그래서 우리는이 이메일 NA 인 경우)는 독특한 사람이었다처럼 그것을 유지 :.이 작업을 수행 할 수있는 쉬운 방법이
email name var1 var2 var3a var3b var4 ... var200
[email protected] Alfred C. 2 1 NA NA 0 . .
[email protected] Bob V. NA 3 1 0 NA . .
<NA> Cathy L. 1 1 2 . NA . .
[email protected] . . etc etc etc etc etc etc
있습니까? 나는 이틀 동안 dplyr와 tidyr로 고생하고있다 ... 결국, 한 행에는 email 변수를 사용하여 식별 할 수있는 정보가 포함되어야한다. 우리는 또한 우리가 한 사람에게 속한다고 말할 수없는 다른 모든 관찰을 유지할 필요가 있습니다.
도와 주셔서 감사합니다.
이메일, 트위터 또는 둘 다를 가지고 있다는 것을 의미합니까? 누락 된 전자 메일 값이 NA로 표시됩니까? – aosmith
트위터는 또 다른 변수 일 뿐이므로 혼란 스럽기 때문에 예제에서 삭제할 것입니다. 우리는 이메일 주소를 사용하여 같은 사람의 관찰을 합치기를 원합니다. – leakciM
내 대답이 업데이트되었는데 도움이 될 수도 아닐 수도 있습니다. 재현 가능한 예제 데이터 세트 (예 : 데이터 세트에 누락 된 이메일 값이 없음)를 넣으면 도움이됩니다. – aosmith