Extract Date in R

后端 未结 3 1582
名媛妹妹
名媛妹妹 2021-01-03 07:50

I struggle mightily with dates in R and could do this pretty easily in SPSS, but I would love to stay within R for my project.

I have a date column in my data fram

3条回答
  •  难免孤独
    2021-01-03 08:27

    You have to remember Date is a numeric format, representing the number of days passed since the "origin" of the internal date counting :

    > str(Date)
    Class 'Date'  num [1:10] 14245 14360 14475 14590 14705 ...
    

    This is the same as in EXCEL, if you want a reference. Hence the solution with format as perfectly valid.

    Now if you want to set the first date of a year as October 1st, you can construct some year index like this :

    redefine.year <- function(x,start="10-1"){
      year <- as.numeric(strftime(x,"%Y"))
      yearstart <- as.Date(paste(year,start,sep="-"))
    
      year + (x >= yearstart) - min(year) + 1
    }
    

    Testing code :

    Start <- as.Date("2009-1-1")    
    Stop <- as.Date("2011-11-1")
    Date <- seq(Start,Stop,length.out=10)
    
    data.frame( Date=as.character(Date),
                year=redefine.year(Date))
    

    gives

             Date year
    1  2009-01-01    1
    2  2009-04-25    1
    3  2009-08-18    1
    4  2009-12-11    2
    5  2010-04-05    2
    6  2010-07-29    2
    7  2010-11-21    3
    8  2011-03-16    3
    9  2011-07-09    3
    10 2011-11-01    4
    

提交回复
热议问题