2017-05-19 3 views
0

두 개의 열이있는 데이터 프레임이 있습니다. I 두 제거 5 분 이내 인 모든 엔트리가 필요R 데이터 프레임에서 시간 프레임 내의 모든 행 제거

 date    value 
    1 09.05.2017 10:30 0.72599362 
    2 09.05.2017 10:31 0.6942953 
    3 09.05.2017 10:32 0.6913402 
    4 09.05.2017 10:33 0.7219035 
    5 09.05.2017 10:34 0.7484892 
    6 09.05.2017 10:35 0.7566694 
    7 09.05.2017 10:36 0.7699520 
    8 09.05.2017 10:37 0.7863227 
    9 09.05.2017 10:38 0.7955254 
    10 09.05.2017 10:39 0.7724675 
    11 09.05.2017 10:40 0.7883882 
    12 09.05.2017 10:41 0.7975705 
    13 09.05.2017 10:42 0.7842776 
    14 09.05.2017 10:43 0.7705962 
    15 09.05.2017 10:44 0.7607595 
    16 09.05.2017 10:45 0.7658722 
    17 09.05.2017 10:46 0.7617003 
    18 09.05.2017 10:47 0.7536121 
    19 09.05.2017 10:48 0.7493686 
    ... 

:

첫번째 컬럼 POSIXct이며, 두 번째 NUM이다. 5 분 간격으로 행을 보여주고 싶다는 의미입니다.

원하는 결과 : 완전히 제거해야한다 사이에서

 date    value 
    1 09.05.2017 10:30 0.72599362 
    2 09.05.2017 10:35 0.7566694 
    3 09.05.2017 10:40 0.7883882 
    4 09.05.2017 10:45 0.7658722 

행.

나는이 같은 컷을 사용하는 생각을했다 :

dfResult <- cut(dfResult$date, "5 min") 

하지만 절단 기능은 그래서 컷 골재를 사용하여 생각하고 있었는데 어떤 이유로

의 dataframe에서 항목을 제거하지 않습니다. 그러나 집계에는 항상 합계 또는 평균과 같은 함수가 있습니다. 이는 내가 원하는 것이 아닙니다.

위의 줄은 수행해야하는 작업이지만 집계 함수로 sum을 사용합니다. 사이에있는 항목을 단순히 제거하는 기능이 있습니까?

감사합니다.

답변

0

date 클래스 POSIXct 경우, 5 분의 모듈로이 dataframe을 감안할 때 0

을 반환하는 단지 행을 반환하는 나머지 연산자 (%%)를 사용할 수있다 (단지 당신이 shouldn 재현성 -에 포함

df <- structure(list(date = structure(c(1504632600, 1504632660, 1504632720, 
1504632780, 1504632840, 1504632900, 1504632960, 1504633020, 1504633080, 
1504633140, 1504633200, 1504633260, 1504633320, 1504633380, 1504633440, 
1504633500, 1504633560, 1504633620, 1504633680), class = c("POSIXct", 
"POSIXt"), tzone = ""), value = c(0.72599362, 0.6942953, 0.6913402, 
0.7219035, 0.7484892, 0.7566694, 0.769952, 0.7863227, 0.7955254, 
0.7724675, 0.7883882, 0.7975705, 0.7842776, 0.7705962, 0.7607595, 
0.7658722, 0.7617003, 0.7536121, 0.7493686)), .Names = c("date", 
"value"), row.names = c(NA, -19L), class = "data.frame") 

돌아 가기만을 원하는 행 :

df[which(as.numeric(x$date) %% (60 * 5) == 0),] 
+0

일 날짜의 열이 POSIXct 객체가)있는 그대로 '은 t은 오랫동안이 작업을 수행 할 필요가 매력처럼, 고마워! – CoffeeCups

관련 문제