我在一個大型(6 個月)資料框中有一個 date_time POSIXct 物件,以 5 秒為增量,我想將其聚合為 30 秒的“塊”。6x 5s 是 30s,所以 nrow(df)/6 給出了正確的序列長度。
我嘗試了以下方法:
Date_time_30s <- aggregate(Mn$Date_time, list(seq(0, length.out = nrow(Mn)) %/% 6), FUN = mean)
前 6 個 date_times 看起來像這樣:
"","Date_time","Depth","Temperature","Light_Level","Date"
"1",2013-10-14 12:30:00,
"2",2013-10-14 12:30:05,
"3",2013-10-14 12:30:10,
"4",2013-10-14 12:30:15,
"5",2013-10-14 12:30:20,
"6",2013-10-14 12:30:25,
所以平均值應該是 2013-10-14 12:30:12.5 但結果是 2013-10-14 11:30:12。沒有小數秒(一個簡單的格式問題由 options(digits.secs=3) 解決)但小時是錯誤的。
怎么了?
dput(頭(錳))
structure(list(Date_time = structure(c(1381721400, 1381721405,
1381721410, 1381721415, 1381721420, 1381721425), class = c("POSIXct",
"POSIXt"), tzone = "Asia/Tokyo"), Depth = c(64.4476273148148,
65.9476334145628, 65.9476395143109, 66.4476456140589, 67.9476517138069,
66.9476578135549), Temperature = c(27.549999, 27.5, 27.400002,
27.35, 27.25, 27.200001), Light_Level = c(148L, 148L, 148L, 148L,
147L, 147L), Date = structure(c(15992, 15992, 15992, 15992, 15992,
15992), class = "Date"), vv = c(0, 0.300001, 1e-06, 0.100001,
0.300001, -0.199999), vv_abs = c(0, 0.300001, 1e-06, 0.100001,
0.300001, 0.199999)), row.names = c(NA, 6L), class = "data.frame")
uj5u.com熱心網友回復:
在代碼之前運行這個:
options(digits.secs=3)
你能運行這個命令嗎?它將為您提供不同時區的結果。東京應該是正確的時間。
library(lubridate)
library(dplyr)
Date_time_30s <- aggregate(Mn$Date_time, list(seq(0, length.out = nrow(Mn)) %/% 6), FUN = mean) %>%
mutate(Tokyo = with_tz(x, tzone = "Asia/Tokyo"),
GMT = with_tz(x, tzone = "GMT"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/353787.html
上一篇:如何在html中顯示多個常量?
下一篇:熊貓時間戳重新格式化
