2017-06-06 256 views
-3

我有我的矩陣每日數據,分爲6列 - 「年,月,日,ssts,anoms,失蹤」。根據每日數據計算的月份平均數

enter image description here

我想要計算每年SST每個月的平均水平。 (例如 - 1981年 - 9月 - 平均值爲9月份所有日子的平均值),而且我想在所有年份都這樣做。我正在努力工作,我的代碼,但無法這樣做。

+7

請不要使用截圖時,你可以更輕鬆地剪切和粘貼文本到你的問題。 – Spacedman

回答

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,和另一數據集將在df.years的所有年份中有mean(SST)

+0

考慮更改:'SST-> SST' – amonk

+0

已完成請求。希望這更一致。 – akash87

0

data.table條款,您可以執行以下操作

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

添加一個額外的列average_sst

0

只是假設您的數據存儲在一個名爲「數據」 data.frame:

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)