【问题标题】:Assign variable to minimum date based on a within group difference根据组内差异将变量分配给最小日期
【发布时间】:2018-12-20 22:54:15
【问题描述】:

我想创建一个可变日期,该日期等于风暴(名称)已成为飓风或存在(如果是热带风暴)的最近日期。

这是一个示例数据框:

hurricane<- data.frame("year"=c(2011,2012,2013,2011,2012,2013), 

"category"=c("TS","H","H","TS","TS","TS"), 

"name"=c("alex","alex","alex","bob","bob","bob"))

我想要一个日期变量,它等于飓风被归类为飓风的最近日期或风暴从未成为飓风时出现的最近日期。即对于每个观察,亚历克斯的日期是 2012 年,而鲍勃的日期是 2011 年。

到目前为止,我已经尝试了无数次 group_by %>% mutate 和 ifelse 语句的迭代,但还没有走得很远。

谢谢!

【问题讨论】:

    标签: r group-by dplyr


    【解决方案1】:
       library(tidyverse)
       hurricane%>%
                group_by(name)%>%
                mutate(a =  if_else(any(category=='H'),year[category=='H'][1],min(year)))
        # A tibble: 6 x 4
        # Groups:   name [2]
           year category name      a
          <dbl> <fct>    <fct> <dbl>
        1  2011 TS       alex   2012
        2  2012 H        alex   2012
        3  2013 H        alex   2012
        4  2011 TS       bob    2011
        5  2012 TS       bob    2011
        6  2013 TS       bob    2011
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 2019-06-21
      • 2019-02-20
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 2018-09-30
      • 1970-01-01
      相关资源
      最近更新 更多