본문 바로가기

R_statistics/Rs_preparation

[R프로그래밍] 데이터전처리 unique:: 중복값처리

R Basic::unique 함수는 많이들 사용을 해보셨을 겁니다.

unique 함수 내에서 아주 유용한 기능이 있어서 하나 소개해드릴까 싶습니다.

그 기능은 다름아닌, fromLast 인데요.

 

이 기능은 unique 함수로 값들을 추릴때, 중복된 값들이 여러개 있으면, 

가장 마지막 행만 남기고 없애는 기능입니다. 

 이 기능을 아주 약간만 응용하면 last visit 이나 first visit 때의 값만을 남기고 모든 중복 측정값을 제거할 수 있습니다.

 

a 라는 data.frame 이 있을 때. visit time 을 vt 라는 변수에 저장해 두었다고 하고, 식별자는 id 라고 가정을 하고

아래의 코드를 입력한다면 어떠한 결과가 나올까요?


a <- a[order(a$vt, decreasing =T), ]
a <- a[ (unique(a$id), fromLast=T), ]


쉽게 예상할 수 있듯이,

vt값 기준으로 내림차순으로 정렬이 될 것이며, fromLast 덕분에 마지막 값만 살아남게 될 것 입니다.

즉, 마지막 visit time 만 남기고 모두 정리가 되겠죠?

반대로 order 를 ascending 으로 한다면, 첫 visit time 만 남기고 모두 사라지게 됩니다.

참 쉽죠 ?

 

** 도움이 되셨다면, '공감 / 댓글' 부탁드립니다^^