1
거기에 비슷한 질문이 있지만 감사 할 수없는 것으로 알고 있습니다. 나는 시간의 시작 부분에서 시작하는 평균화와 함께 5 분 간격으로 한 컬럼의 데이터를 평균화하고자하는 데이터 세트를 가지고있다. 예를 들어, 이전 5 분 동안의 평균 10:00. 09 : 56-10 : 00이 될 것입니다. 여기 datetime에서 선행 5 분 빈에 대한 시간 간격을 기준으로 평균화합니다.
내 데이터 세트의 예입니다 : 나는 아래의 코드를 시도data <- structure(list(datetime = c("11/07/2013 19:20", "11/07/2013 19:21",
"11/07/2013 19:22", "11/07/2013 19:23", "11/07/2013 19:24", "11/07/2013 19:25",
"11/07/2013 19:26", "11/07/2013 19:27", "11/07/2013 19:28", "11/07/2013 19:29",
"11/07/2013 19:30", "11/07/2013 19:31", "11/07/2013 19:32", "11/07/2013 19:33",
"11/07/2013 19:34", "11/07/2013 19:35", "11/07/2013 19:36", "11/07/2013 19:37",
"11/07/2013 19:38", "11/07/2013 19:39", "11/07/2013 19:40", "11/07/2013 19:41",
"11/07/2013 19:42", "11/07/2013 19:43", "11/07/2013 19:44", "11/07/2013 19:45"
), met = c(-24.24081371, -24.4280008, -24.35142264, -24.84884114,
-25.06214408, -25.46749039, -25.44670288, -25.86062294, -26.30899817,
-26.57565791, -26.6866101, -27.03829228, -27.34621325, -27.91269122,
-28.60861612, -29.16745075, -28.81285096, -29.89737508, -30.26500716,
-30.08502411, -31.05084494, -31.21356991, -31.05715444, -32.29645243,
-32.76946492, -32.69307397)), .Names = c("datetime", "met"),
class = "data.frame", row.names = c(NA, -26L))
하지만 나는 내가 원하는 방식으로 작업을 얻을 수 없었다.
> data$datetime <- as.POSIXct(data$datetime, format="%m/%d/%Y %H:%M")
> groups <- cut(data$datetime, breaks="5 min")
> by(data$met, groups, mean)
groups: 2013-07-11 19:20:00
[1] -24.58624
------------------------------------------------------------------------
groups: 2013-07-11 19:25:00
[1] -25.93189
------------------------------------------------------------------------
groups: 2013-07-11 19:30:00
[1] -27.51848
------------------------------------------------------------------------
groups: 2013-07-11 19:35:00
[1] -29.64554
------------------------------------------------------------------------
groups: 2013-07-11 19:40:00
[1] -31.6775
------------------------------------------------------------------------
groups: 2013-07-11 19:45:00
[1] -32.69307
이
정확한 평균 있지만 소인 그래서, R에 의해 주어진다 12시 1분 라기보다 마지막 5 분 동안의 처음 도장 실제로 12시 5분 (12시 1분의 기간 - 12:05). 불행히도 출력을12/07/2013 12:05 -19.91691
과 같은 형식으로 가져올 수 없습니다.
그래서'data $ datetime <- as.POSIXct (데이터 $ datetime, 형식 = "% m/% d/% Y % % H : % M"); (groups <- cut (data $ datetime, breaks = "5 min"))'당신이 찾고 있던 것과 정확하게 일치하지 않습니다. 맞습니까? – lukeA
당신의 코멘트를 주셔서 감사합니다. 이미'data $ datetime <- as.POSIXct (data $ datetime, format = "% m/% d/% Y %%% % M")'및'(groups <- cut data $ datetime, breaks = "5 min")'와'met.5min <- by (data $ met.day.night, groups, mean)'을 사용하지만 올바른 간격이 아니며 데이터 프레임에 있습니다. 수출하는 법을 모르겠다. (나의 무지를 변명해라!) – squishy
예상되는 결과물을 제공하십시오. 데이터의 모든 점에서 5 분 평균을 원하는지, 아니면 집계하여 한 번만 관찰 할 수 있는지 분명하지 않습니다. 5 분 간격으로 (다른 날짜 포함) 예를 들어 –