我的每日数据包含我的矩阵,分为6列 - "年,月,日,ssts,anoms,missing"。
我想计算每年SST每个月的平均值。 (例如 - 1981年 - 9月 - avg值9月全天的sts),我想这么多年都这样做。我正在尝试工作,我的代码,但我无法这样做。
答案 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.mnths
,mean(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)