如何从 R 中的三个不同数据集获取平均值

How get the average from three different datasets in R

我从 3 个月前开始使用 R,处理来自气象站的信息。现在我想从位于同一位置的站点的三个不同数据集中获取平均值。

我的数据框是这样的:

d1

Date_Measure Id Tmin Tmax Tmedia Smin Smax Smedia Hrmin Hrmax Hrmedia
2020-06-21 06:00:00 M03100245 19.10 19.97 19.335 25.04 71.14 44.930 83.78 84.28 84.280
2020-06-21 07:00:00 M03100245 20.31 21.69 20.915 89.69 144.34 108.220 81.76 83.78 82.510
2020-06-21 08:00:00 M03100245 21.87 24.64 22.840 115.56 263.31 183.035 76.70 81.76 79.985

d2

Date_Measure Id Tmin Tmax Tmedia Smin Smax Smedia Hrmin Hrmax Hrmedia
2020-06-21 06:00:00 M03100247 19.43 20.20 19.560 17.46 68.28 37.880 91.69 92.72 92.720
2020-06-21 07:00:00 M03100247 20.64 21.81 21.050 87.55 139.98 105.535 87.07 91.18 88.865
2020-06-21 08:00:00 M03100247 21.85 24.75 23.015 112.42 266.65 183.440 75.24 86.55 82.695

d3

Date_Measure Id Tmin Tmax Tmedia Smin Smax Smedia Hrmin Hrmax Hrmedia
2020-06-21 06:00:00 M03100296 19.39 20.16 19.560 29.18 77.94 48.900 89.61 90.69 90.690
2020-06-21 07:00:00 M03100296 20.55 21.53 20.805 95.95 154.43 116.065 85.82 89.07 86.370
2020-06-21 08:00:00 M03100296 21.62 24.88 23.035 122.26 280.18 194.635 71.22 85.28 79.870

我想将每个日期和每个小时的平均值合并为一个综合 table,我该怎么做这个过程?

首先让所有数据集条目的数量相同。

然后通过迭代日期和小时列创建另一个数据集。

我想您需要通过适当的公式生成剩余的列。

您可以组合 3 个数据帧,从 Date_Measure 变量中提取日期和小时,并使用 across.

对数值变量取平均值
library(dplyr)
library(lubridate)

bind_rows(d1, d2, d3) %>%
  #Or instead of writing them individually, we can also use
  #bind_rows(mget(paste0('d', 1:3))) %>%
  mutate(Date_Measure = ymd_hms(Date_Measure), 
         Date = as.Date(Date_Measure),
         Hour = hour(Date_Measure)) %>%
  group_by(Date, Hour) %>%
  summarise(across(Tmin:Hrmedia, mean), .groups = 'drop')

#   Date        Hour  Tmin  Tmax Tmedia  Smin  Smax Smedia Hrmin Hrmax Hrmedia
#  <date>     <int> <dbl> <dbl>  <dbl> <dbl> <dbl>  <dbl> <dbl> <dbl>   <dbl>
#1 2020-06-21     6  19.3  20.1   19.5  23.9  72.5   43.9  88.4  89.2    89.2
#2 2020-06-21     7  20.5  21.7   20.9  91.1 146.   110.   84.9  88.0    85.9
#3 2020-06-21     8  21.8  24.8   23.0 117.  270.   187.   74.4  84.5    80.8