2012-11-16 4 views
0

이것은 쌍 유전자 조건에 따라 다른 유전자 표현 결과를 병합하려고 할 때의 나의 특별한 악몽 중 하나입니다. 내 병합 된 데이터 프레임은 다음과 같습니다.두 개의 열을 비교하는 데이터 프레임에서 열의 교차 정보로 라인 제거

knowngene1 Logfold1  Gene1 knowngene2 Logfold2  Gene2 
uc001ezv.3 5.1167021111 NA uc001ezu.1 5.6262305191 FLG 
uc001ihe.4 4.1338871783 LOC100216001 uc001ihg.3 3.9475325801 NA 
uc001iki.4 9.9902455211 CELF2 uc001ikn.2 9.3321964303 NA 
uc001ikk.2 10.3059806111 CELF2 uc001ikn.2 9.3321964303 NA 
uc001ikl.4 9.9890468379 CELF2 uc001ikn.2 9.3321964303 NA 
uc001ikn.2 9.8293484977 NA uc001iki.4 9.4401488053 CELF2 
uc001ikn.2 9.8293484977 NA uc001ikk.2 9.2887954663 CELF2 
uc001ikn.2 9.8293484977 NA uc001ikl.4 9.4401488053 CELF2 
uc001ikn.2 9.8293484977 NA uc010qbi.2 8.6399349792 CELF2 
uc001ikn.2 9.8293484977 NA uc010qbj.1 9.2887954663 CELF2 
uc001ezu.1 5.6262305191 FLG uc001ezv.3 5.1167021111 NA 
uc001ihg.3 3.9475325801 NA uc001ihe.4 4.1338871783 LOC100216001 
uc001iki.4 9.4401488053 CELF2 uc001ikn.2 9.8293484977 NA 
uc001ikk.2 9.2887954663 CELF2 uc001ikn.2 9.8293484977 NA 
uc001ikl.4 9.4401488053 CELF2 uc001ikn.2 9.8293484977 NA 
uc001ikn.2 9.3321964303 NA uc001iki.4 9.9902455211 CELF2 
uc001ikn.2 9.3321964303 NA uc001ikk.2 10.3059806111 CELF2 
uc001ikn.2 9.3321964303 NA uc001ikl.4 9.9890468379 CELF2 
uc001ikn.2 9.3321964303 NA uc010qbi.2 10.3865530025 CELF2 
uc001ikn.2 9.3321964303 NA uc010qbj.1 10.3072927485 CELF2 
uc001iot.1 6.9068905956 NA uc001iou.2 8.4040043896 VIM 
uc001iou.2 10.4420548632 VIM uc001iot.1 5.8235197903 NA 
uc001ipd.3 4.4693510978 ST8SIA6 uc001ipf.1 5.1931857169 NA 
uc001kgd.3 3.5469561781 NA uc009xts.3 4.0607448636 IFIT2 
uc001kgf.3 3.3975573789 IFIT3 uc001kgd.3 3.2512633588 NA 

요점은 복제 된 행을 제거하고 싶지 않다는 것입니다. 물론 knowngene1과 knongene2에서 변경된 알려진 접근자를 제거하고 싶습니다. 내가 예를 보여 드리죠, 첫 번째는 첫 번째는 내가 유지하려는 하나의 거울 이미지 사실 나는 나를 위해이 옆 라인이 동일

uc001ikn.2 9.8293484977 NA uc001iki.4 9.4401488053 CELF2 

을 유지하려는 라인에도 불구하고,이다 더 많거나 적은 동일한 범위

uc001iki.4 9.4401488053 CELF2 uc001ikn.2 9.8293484977 NA 
uc001ikn.2 9.3321964303 NA uc001ikl.4 9.9890468379 CELF2 

에 발현 값은, 그래서 아이디어는 내가 보는 첫 번째를 유지하고 다음 사람을 제거하는 것입니다. 아이디어가 있습니까?

답변

1

uc001ikn.2이 나타나는 모든 행을 제거 하시겠습니까? 그렇다면, 나는 이것이 작동 생각 :

Rgames> foo 
    [,1] [,2] 
[1,] 1 7 
[2,] 2 8 
[3,] 3 9 
[4,] 2 3 
[5,] 4 1 
[6,] 3 10 
[7,] 5 11 
[8,] 6 12 
Rgames> foo[!duplicated(foo[,1])&!(foo[,2]%in%duplicated(foo[,1])),] 
    [,1] [,2] 
[1,] 1 7 
[2,] 2 8 
[3,] 3 9 
[4,] 5 11 
[5,] 6 12 

이 경우 귀하의 경우, 당신은 df$knowngene1df$knowngene2 열을 작동 할 것입니다.

+0

의심 할 여지없이 적절히 교육받은 사람은'녹아 내리고'재연성을 사용합니다 :-) –