2 열을 기준으로 중복 행을 식별하고 표시하고 싶습니다. 각 복제본에 대해 고유 한 식별자를 만들고 싶습니다. 행이 복제본 일뿐 만 아니라 중복되는 행을 알 수 있습니다. 일부 중복 항목 쌍 (적합 및 앉음)과 중복되지 않은 다른 쌍이있는 아래와 같은 데이터 프레임이 있습니다. 항목 쌍이 복제되는 동안 포함 된 정보는 고유합니다 (예 : 한 행은 1 행에 대해 Value1에 값이 있지만 Value2 및 Value 3에는 해당하지 않지만 두 번째 또는 '중복'행에는 Value2 및 Value3에 대한 숫자 만 있음) 값이 아님 1)
현재 데이터 프레임
value1 value2 value3 fit sit
[1,] "1" NA NA "it1" "it2"
[2,] NA "3" "2" "it2" "it1"
[3,] "2" "3" "4" "it3" "it4"
[4,] NA NA NA "it4" "it3"
[5,] "5" NA NA "it5" "it6"
[6,] NA NA "2" "it6" "it5"
[7,] NA "4" NA "it7" "it9"
예제 데이터 프레임을 생성하는 코드
value1<-c(1,NA,2,NA,5,NA,NA)
value2<-c(NA,3,3,NA,NA,NA, 4)
value3<-c(NA,2,4,NA,NA,2, NA)
fit<-c("it1","it2","it3","it4", "it5", "it6","it7")
sit<-c("it2","it1","it4","it3", "it6", "it5", "it9")
df.now<-cbind(value1,value2,value3, fit, sit)
내가 원하는 것은 이것을 다음과 같은 데이터 프레임으로 변환하는 것입니다.
원하는 데이터 프레임
val1 val2 val3 it1 it2
[1,] "1" "3" "2" "it1" "it2"
[2,] "2" "3" "4" "it3" "it4"
[3,] "5" NA "2" "it5" "it6"
[4,] NA "4" NA "it7" "it9"
다음 단계를 수행하려고 생각했습니다. 1. 맞춤을 사용하여 새 변수를 만들고 가장 낮은 항목과 가장 높은 항목으로 앉아 중복 쌍을 식별합니다. 2. 중복 된 항목 쌍을 식별합니다. 3. ifelse를 사용하여 고유 한 정보를 선택하고 채 웁니다.
1 단계와 3 단계를 수행하는 방법을 알고 있지만 2 단계에서 멈춰 있습니다. 필요한 것은 TRUE / FALSE 중복을 식별하는 것이 아니라 각 항목 쌍에 대해 고유 식별자가있는 열을 가지고 있다고 생각합니다. 1 단계로 인해 2 개의 추가 행이 있습니다.
value1 value2 value3 fit sit lit hit dup
[1,] "1" NA NA "it1" "it2" "it1" "it2" 1
[2,] NA "3" "2" "it2" "it1" "it1" "it2" 1
[3,] "2" "3" "4" "it3" "it4" "it3" "it4" 2
[4,] NA NA NA "it4" "it3" "it3" "it4" 2
[5,] "5" NA NA "it5" "it6" "it5" "it6" 3
[6,] NA NA "2" "it6" "it5" "it5" "it6" 3
[7,] NA "4" NA "it7" "it9" "it7" "it9" NA
이 작업을 수행하는 방법을 잘 모르겠습니다.
내가 요구하는 것은 2 단계에 대한 도움이거나 아마도 내가 설명 한 단계보다 더 나은 방법으로 해결하는 것입니다.