【问题标题】:How to get date from a condition on certain column如何从特定列的条件中获取日期
【发布时间】:2022-09-27 18:17:11
【问题描述】:

我正在处理具有波数的数据,它们代表某年某月的数据。数据是双月的,所以 wave 列的增加意味着 2 个月的增加 wave 的列看起来像这样: |波| |----| |1 | |1 | |1 | |2 | |2 | |3 | |3 | |3 | |4 | |5 | |5 | |5 | |7 | |8 |

现在,我想创建一个与波数相对应的日期列。我的波值范围从 1 到 64。我想在我的数据框中添加日期列,如下所示

wave date
1 jan2012
1 jan2012
1 jan2012
2 mar2012
2 mar2012
3 may2012
3 may2012
3 may2012
4 jul2012
5 sep2012
5 sep2012
5 sep2012
6 nov2012
7 jan2013

    标签: r lubridate


    【解决方案1】:

    我使用了具有年月日期格式的 dplyr 和 zoo:

    library(dplyr)
    library(zoo)
    
    df <- data.frame(wave = c(1,1,1,2,2,3,3,3,4,5,5,5,6,7))
    
    opener <- as.yearmon("2021-01")
    
    df %>% mutate(date = opener + ((wave-1)*2/12))
    

    这给了我们:

       wave     date
    1     1 Jan 2021
    2     1 Jan 2021
    3     1 Jan 2021
    4     2 Mar 2021
    5     2 Mar 2021
    6     3 May 2021
    7     3 May 2021
    8     3 May 2021
    9     4 Jul 2021
    10    5 Sep 2021
    11    5 Sep 2021
    12    5 Sep 2021
    13    6 Nov 2021
    14    7 Jan 2022
    

    说明: 1 之后的每一波都会在日期上增加 2/12(即两个月)。

    编辑:我输入了错误的开放年份/月份,对不起,但原理保持不变!如果您尝试此操作,请确保更正“开瓶器”。

    【讨论】:

      猜你喜欢
      • 2015-03-29
      • 2014-08-19
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多