我試圖提取1950年至2015年期間幾個儀表站的年平均降雨量。降雨數據集由每日測量值組成。有條件地去除R中的分組數據的行
在計算每個單獨站點的年平均值之前,我需要過濾數據,以便每個月必須有> 15天的數據值。
這怎麼可能在R?
讓這成爲一個工作示例:
id<-rep(c("Station_1","Station_2","Station_3"),length(1),each=1080)
year<-rep(c(1950:1952),length(1:3),each=360)
month <- rep(c(1:12),length(1:9),each=30)
day <- rep(c(1:30),length(1:108))
value<-runif(3240, min=0, max=10)
df<-data.frame(cbind(id,year,month,day,value))
我想是這樣的:
result<-df %>%
group_by(id,year,month) %>%
summarise(No._of_days=n(),mean_month=mean(value))
result<-result[!(result$No._of_days<15),]
result<-result %>%
group_by(id,year) %>%
summarise(No._of_months=n(),mean_year=mean(mean_month))
然而,這導致了錯誤的解決辦法,因爲我的「從平均平均」服用。
感謝您的任何建議。
請停止使用'data.frame(cbind(...))'。 'data.frame()'就足夠了。看看'?data.frame'。 – Arun
謝謝Sathish,aichao,sebolus和NJBurgo的快速和正確答覆 - 非常感謝您的幫助!所有的解決方案都可以工作,但我會堅持使用aichao,就像我最適合使用dplyr一樣。 抱歉,關於錯誤地表述數據框 - 現在我會離開「原樣」,因爲這裏的每個人都已經就如何正確構建它添加了良好的評論。 –