按月计算每日数据的平均值

时间:2017-06-06 15:37:06

标签: r average

我的每日数据包含我的矩阵,分为6列 - "年,月,日,ssts,anoms,missing"。

enter image description here

我想计算每年SST每个月的平均值。 (例如 - 1981年 - 9月 - avg值9月全天的sts),我想这么多年都这样做。我正在尝试工作,我的代码,但我无法这样做。

3 个答案:

答案 0 :(得分:0)

您应该在R中使用dplyr个包。为此,我们会调用您的数据df

require(dplyr)

df.mnths <- df %>% 
            group_by(Years, months) %>%
            summarise(Mean.SST = mean(SSTs))

df.years <- df %>%
            group_by(Years) %>%
            summarise(Mean.SST = mean(SSTs))

这是两个新数据集,mean(SST)中每年每个月df.mnthsmean(SST)中所有年份都有df.years的另一个数据集}。

答案 1 :(得分:0)

data.table而言,您可以执行以下操作

library(data.table)
dt[, average_sst := mean(SSTs), by = .(years,months)]

添加额外的列average_sst

答案 2 :(得分:0)

假设您的数据存储在名为&#34; data&#34;的数据框架中:

years months        SSTs
1  1981      1 -0.46939368
2  1981      1  0.03226932
3  1981      1 -1.60266798
4  1981      1 -1.53095676
5  1981      1  1.71177023
6  1981      1 -0.61309846

tapply(data$SSTs, list(data$years, data$months), mean)
tapply(data$SSTs, factor(data$years), mean)