[英]Calculate daily mean of data frame in r
我在 r 中有一個數據框,其中包含幾個月每五分鍾一小時的讀數。 我想計算 var3(下的數據框)的每日平均值,並將其作為 var4 添加到該數據框中。
這是我的df:
>df
timestamp Var1 Var2 Var3
1 2018-07-20 13:50:00 32.0358 28.1 3.6
2 2018-07-20 13:55:00 32.0358 28.0 2.5
3 2018-07-20 14:00:00 32.0358 28.1 2.2
我通過搜索論壇找到了這個解決方案,但它引發了錯誤。
這是我正在應用的解決方案:
aggregate(ts(df$var3[, 2], freq = 288), 1, mean)
這是我得到的錯誤:
Error in df$var3[, 2] : incorrect number of dimensions
我認為這也適用於我的數據框,但無法消除此錯誤。 請幫忙。
這是dplyr
和lubridate
的方法。
library(dplyr)
library(lubridate)
df %>%
group_by(Day = day(ymd_hms(timestamp))) %>%
mutate(Var4 = mean(Var3))
## A tibble: 1,000 x 6
## Groups: Day [5]
# timestamp Var1 Var2 Var3 Day Var4
# <dttm> <dbl> <dbl> <dbl> <int> <dbl>
# 1 2018-07-20 13:55:30 32.2 22.9 2.35 20 2.99
# 2 2018-07-20 14:00:30 37.7 24.8 2.99 20 2.99
# 3 2018-07-20 14:05:30 38.7 29.6 3.47 20 2.99
# 4 2018-07-20 14:10:30 30.4 24.2 3.02 20 2.99
# 5 2018-07-20 14:15:30 32.0 28.4 2.95 20 2.99
## … with 995 more rows
樣本數據
df <- data.frame(timestamp = ymd_hms("2018-07-20 13:50:30") + 60*5 * 1:1000,
Var1 = runif(100,30,40),
Var2 = runif(100,20,30),
Var3 = runif(100,2,4))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.