簡體   English   中英

計算 r 中數據幀的每日平均值

[英]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

我認為這也適用於我的數據框,但無法消除此錯誤。 請幫忙。

這是dplyrlubridate的方法。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM