首页 > 解决方案 > 在我的数据框中汇总 649 个位置和 11,088 个观测值中的每个水文年

问题描述

有人可以帮助我吗?我有一个包含 649 个不同位置的数据框,每个位置都有过去 30 年的 11088 个观测值。1 水文年从 9 月开始。1 至 8 月 31. 数据框如下所示:

在此处输入图像描述

我想要结束的是这样的:

在此处输入图像描述

在我的原始数据框中,我也丢失了很多数据。如果某个位置(即 1.50.0 )在一个水文年份中丢失超过 10% 的数据,我不想将那一年保留在我的新数据框中。

如果我的问题不清楚,请询问。:)

标签: r

解决方案


没有数据并不容易,但它可能是这样的

  df<-data.frame(d1=c(rnorm(9,5,2),NA),
                    d2=rnorm(10,15,2))
     row.names(df)<-c(seq(today()-days(9),today(),"day"))

     df%>%
       rownames_to_column("id")%>%
       gather(variable,value,-id)%>%
       mutate(yr=year(id))%>%
       group_by(yr)%>%
       mutate(is_na=sum(is.na(value))/n())%>%
       filter(is_na<.1)%>%
       group_by(yr,variable)%>%
       summarise(res=mean(value,na.rm=T))%>%
       spread(variable,res)
    # A tibble: 1 x 3
    # Groups:   yr [1]
         yr    d1    d2
      <dbl> <dbl> <dbl>
    1 2018.  4.41  14.7

推荐阅读