데이터 프레임이 있으며 행에 "유사 유사"한 두 값에 따라 삭제해야합니다. 나는 다르지만 동일하지 않은 관측치 만 삭제하면됩니다. 나는 이것을 agrep
을 사용하여 시도하지만이 기능은 동일한 관찰을 삭제합니다. 상기의 dataframe
조건부 행 삭제 : 동일하지 않은 유사 유사 행을 삭제하십시오.
Id<-c("RoLu1976","Rolu1976","RoLu1976","AlBl1989","ThSa1996")
Art<-c("Econometric Policy Evaluation: A Critique","Econometric Policy Evaluations A Critique","Econometric Policy Evaluation: A Critique", "Rules after discretion", "Expectations and the Nonneutrality of Lucas")
Id.1<-c("FiKy1989","FiKy1989","BeBe1983","JoSt1989","JoSt1990")
Art.1<-c("Notes on the Lucas Critique","Notes on the Lucas Critique","The Inconsistency of Optimal Plans","The Inconsistency","Notes on the Lucas")
N<-data.frame(Id,Art,Id.1,Art.1)
준 동일한 값은 s
:
및 A에 대한 다른 2 명 개의 제 1 관찰 Art
열이다. 내가 this이었다 무슨 짓을
Id Art Id.1 Art.1
RoLu1976 Econometric Policy Evaluation: A Critique FiKy1989 Notes on the Lucas Critique
RoLu1976 Econometric Policy Evaluation: A Critique BeBe1983 The Inconsistency of Optimal Plans
AlBl1989 Rules after discretion JoSt1989 The Inconsistency
ThSa1996 Expectations and the Nonneutrality of Lucas JoSt1990 Notes on the Lucas
: 위의 경우
최종 데이터 프레임 (동일한 값이 삭제되지 않았 음을 유의)해야한다
yy = NULL
for(i in 1:length(N$Art)){
temp = agrep(N[i,"Art"],N$Art,value=T)
y = ifelse(any(N[i,"Art"]==temp),temp[1],N[i,"Art"])
yy = c(yy,y)
}
N$Art = yy
N.2 = N[!duplicated(N$Art), ]
그러나 그것은 모두 삭제 값 : 동일하고 유사합니다.
어떻게하면됩니까?
"Art"열에 만 기준을 적용 하시겠습니까? 원래 'N'의 두 번째 행에 'Art.1'이있는 것으로 가정합니다. "Foobar"(즉, 다른 "중복"중 하나의 "Art.1"과 다릅니다). 그래도 그걸 버리시겠습니까? –
@ mathematical.coffee "Art"열은 유사하지만 아트 1 (또는 다른 열)과 동일하지만 "Art"(동일하지 않음)의 모든 준 유사 값을 삭제하지만 "Art1"과 동일합니다. – Dan