2017-03-01 1 views
0

나는 세 개의 열 (데이터 테이블) 데이터 집합이 있습니다평균화 한 열 매 15 행

  • 날짜
  • 시간
  • 가격을

데이터 집합 한 분 간격 및 I에 이것을 15 분 간격으로 변환해야합니다. 이렇게하려면 15 행당 평균 가격이 필요합니다. 이미 15 분 간격이있는 다른 데이터 세트에서이 데이터를 복사/붙여 넣기 할 수 있도록 새로운 데이터 프레임 (원본보다 15 배 적은 행)에이 작업이 필요합니다.

나는 아래의 코드로 매 15 행의 평균을 얻어서 새 목록을 만들려고 :
means.price <- dt.Energy.prices[, mean(dt.Energy.prices$Lowest_price_downward), by= 
    (seq(nrow(dt.Energy.prices)) - 1) %/% 15] 

내가 모든 수단 NA있는 새로운 데이터 세트를 얻을. Means.price에는 약 70.000 개의 obs가 있습니다. 원래는 약 105 만 개였습니다. 원본의 1/15 인 데이터 세트를 만들었지 만 그 수단은 아직 없습니다.

언젠가 열 가격에 NA가 있습니다. 때로는 15 개 모두가 NA가되지만 때로는 5 개 행의 값이 다른 10 개가 NA 인 경우가 있습니다. 그것이 15 인 경우, 출력 평균은 좋지만 일부 값이 알려진 경우 알려진 값을 평균화하는 방법이 있기를 바랍니다.

+1

가끔 발생하지만, "나를 위해 작성해주십시오"는 의도하지 않았습니다. 이 사이트는 "이 코드 * 여기 * 작동하지 않습니다. 버그 식별/수정을 도와 줄 수 있습니까?"에 관한 내용입니다. 이 질문은 [재현 할 수있는 질문] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)의 몇 가지 원칙을 따라야합니다. [최소/검증 가능한 질문] (http://stackoverflow.com/help/mcve)뿐만 아니라 해당 링크를 읽은 다음 다시 돌아와 * 샘플 데이터 * 및 작동하지 않는 관련 코드를 포함하도록 질문을 편집 해주십시오. . – r2evans

+0

좋습니다, 감사합니다! 웹 사이트를 처음 사용하는 경우! – Max

+0

나는 내가 지금까지 시도한 것을 설명하기 위해 나의 코멘트를 편집했다! – Max

답변

0

시계열로 변환하는 것을 피하면서이 작업을 수행하는 쉬운 방법 중 하나는 mean()으로 전화하시는 경우 na.rm = TRUE입니다. 이 Lowest_price_downward이 무엇인지 명확하지 않다, 코드에서

> mean(c(2, 0, 0, 0)) 
[1] 0.5 
> mean(c(2, 0, 0, NA)) 
[1] NA 
> mean(c(2, 0, 0, NA), na.rm = TRUE) 
[1] 0.6666667 

,하지만 당신이 그것을 설명하는 방식에서,이 도움이 가능성이 높습니다 :

여기이 작동하는 방법의 예입니다.

means.price <- dt.Energy.prices[, mean(dt.Energy.prices$Lowest_price_downward, 
             na.rm = TRUE), 
            by = (seq(nrow(dt.Energy.prices)) - 1) %/% 15]` 
+0

흠 .. 모든 70.000 명의 OB들은 평균 19.26을 가지고 있습니다. 나는 R이 매 15 줄의 평균이 아닌 각 인스턴스의 전체 열의 평균을 계산했다고 생각합니다. – Max

+0

위의 도움으로 sapply와 작업하는 법을 찾아 냈습니다. 당신의 노력에도 감사드립니다! – Max

관련 문제