2016-08-04 4 views
-2

가 나는 동일한 작용 값과 중복 행을 제거해야R에서 열 값으로 중복 행을 제거하는 방법?

 

    Email   | Action | Time 
    -------------- | -------- | ------------------- 
    [email protected] | checkin | 2016-07-11 08:50:59 
    [email protected] | checkin | 2016-07-11 08:51:42 
    [email protected] | checkin | 2016-07-11 08:55:13 -> this is duplicate data 
    [email protected] | checkout | 2016-07-11 19:15:20 
    [email protected] | checkin | 2016-07-12 08:58:20 
    [email protected] | checkin | 2016-07-12 09:15:00 
    [email protected] | checkin | 2016-07-12 09:20:13 -> this is duplicate data 
    [email protected] | checkout | 2016-07-12 20:20:10 

다음 데이터 프레임이 동일한 기간 (YYYY-MM-DD) 내 (이 경우에 checkincheckout이다).

 

    Email   | Action | Time 
    -------------- | -------- | ------------------- 
    [email protected] | checkin | 2016-07-11 08:50:59 
    [email protected] | checkin | 2016-07-11 08:51:42 
    [email protected] | checkout | 2016-07-11 19:15:20 
    [email protected] | checkin | 2016-07-12 08:58:20 
    [email protected] | checkin | 2016-07-12 09:15:00 
    [email protected] | checkout | 2016-07-12 20:20:10 

나는 내가 YYYY-MM-DD를 얻을 수있는 시간 열을 substr 수있어,하지만 난 어떻게 중복 행을 제거하는 어떤 생각을 가지고 있지 않습니다 : 그것은 다음과 같이해야한다. 도와 주셔서 미리 감사드립니다.

+0

문자열 처리 함수를 사용하지 마십시오. 'as.POSIXct'와'as.Date'를 사용하십시오. – Roland

+0

아 감사합니다. 네 말이 맞아, 나는'as.Date'를 사용해서 데이트 할 수있어. 이제 중복 데이터를 제거하는 방법을 찾아야합니다. 나는'duplicated '를 시도했지만 그 결과는 내가 의도 한 바가 아니다. –

답변

0

먼저 Days이라는 열을 만들어 YYYY-d-m 형식의 날짜로 유지하십시오. 그런 다음 Email, ActionDays의 조합을 사용하여 중복 된 것을 찾아서 제거하십시오.

##Create the column 
flights_info$Days <- as.POSIXct(strftime(flights_info$Time, format = "%Y-%d-%m %H:%M:%S"), format="%Y-%d-%m") 

##Remove the duplicates 
flights_info[!duplicated(flights_info[,c("Email","Action","Days")]),] 

원하는 출력 : 당신이 더 이상 Days 열이하지 싶다면, 당신이 그것을 제거 할 수 있습니다

Email   Action Time    Days  
[email protected] checkin 2016-07-11 08:50:59 2016-07-11 
[email protected] checkin 2016-07-11 08:51:42 2016-07-11 
[email protected] checkout 2016-07-11 19:15:20 2016-07-11 
[email protected] checkin 2016-07-12 08:58:20 2016-07-12 
[email protected] checkin 2016-07-12 09:15:00 2016-07-12 
[email protected] checkout 2016-07-12 20:20:10 2016-07-12 

:

flights_info[!duplicated(flights_info[,c("Email","Action","Days")]),-ncol(flights_info)] 

도움이 되었기를 바랍니다.

+0

쿨! 그것은 작동하지만 새로운'new_flight_info <-flights_info [! duplicated (flights_info [, c ("Email", "Action", "Days")]), - ncol (flights_info)]와 같은 새로운 데이터 프레임에 바인딩되어야합니다. ' 이유가 무엇인지 모르겠다 ... –

+0

@AsepBagjaPriandana, 어떤 이름 으로든 출력에 이름을 붙일 수 있습니다. 데이터가 원하는만큼, 이름은 주관적입니다. – Abdou

관련 문제