2013-05-15 1 views
1

안녕하십니까. 모든 회원 커뮤니티에 안녕 내 DB의 요소를 비교하고 새 이진 변수로 식별하는 방법을 찾으려고합니다. 내 DB는 다음과 같이이다 :R에서 "비슷한"행을 식별하는 방법은 무엇입니까?

id=rep((1:2),5) 
date<-seq(from=as.Date("2013-01-1"),to=as.Date("2013-01-05"),by=1) 
trap<-c(1,1,3,1,4,2,3,4,1,4) 
DB<-data.frame(id,date,trap) 
DB<-DB[order(DB$date),] 
DB$id[2]<-1 
DB$trap[2]<-1 
result<-c("N","N","N","N","N","N","Y","Y","Y","Y") 
DB<-cbind(DB,result) 

나는 ID가 다른있는 모든 요소를 ​​식별하고 싶지만, 날짜와 트랩 값은 열 결과에서 보고서로, 동일합니다.

ave 기능으로 일부 코드 (기본적으로 다른 "유사한"질문에서 파생 됨)를 시도했지만 성공하지 못했습니다. 언제나처럼 어떤 조언도 감사 할 것입니다 !!

답변

3
(duplicated(DB[,-1]) | duplicated(DB[,-1],fromLast=TRUE)) & 
     !(duplicated(DB) | duplicated(DB,fromLast=TRUE)) 
#[1] FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE 
+0

당신에게 정말 고마워요이 내가 건배, 스테프 찾고 정확히 무엇인가 – stefano

1

당신은 당신의 데이터 프레임을 통해 이중 루프를 만들 수 :

apply(DB, 1, function(r){ 
    if(any(apply(DB, 1, function(x)(x[1]!= r[1] & all(x[c(2,3)]==r[c(2,3)]))))) 
    "Y" 
    else 
    "N" 
})   

가 제공합니다!

1 6 2 7 3 8 4 9 5 10 
"N" "N" "N" "N" "N" "N" "Y" "Y" "Y" "Y" 
관련 문제