将日期转换为数字并返回日期

时间:2019-01-16 19:39:38

标签: r date as.date

我有一个日期,我试图将它们转换为数字,然后恢复为原始日期。

      Date
1990-12-31 
1991-12-31 
1992-12-31 
1993-12-31 
1994-06-30 
1994-12-31 

我尝试过,

as.numeric(DF[1:6])
[1]  1  2  3  5  7
as.Date(as.numeric(DF[1:6]), "1990-12-31")
[1] "1991-01-01" "1991-01-02" "1991-01-03" "1991-01-05" "1991-01-07" "1991-01-08"

我注意到时间间隔的问题。我该怎么办才能获得原始日期?

1 个答案:

答案 0 :(得分:1)

如果您拥有的数据帧的列为factor类,如结尾处的注释中可重复显示,则我们不希望对此应用as.numeric,因为那样会给没有意义的因子水平的基础代码。相反,这提供了Date类:

d <- as.Date(DF$Date)
d
## [1] "1990-12-31" "1991-12-31" "1992-12-31" "1993-12-31" "1994-06-30"
## [6] "1994-12-31"

这给出了自UNIX时代以来的天数:

no <- as.numeric(d)
no
## [1] 7669 8034 8400 8765 8946 9130

,这又回到了Date类:

as.Date(no, "1970-01-01")
## [1] "1990-12-31" "1991-12-31" "1992-12-31" "1993-12-31" "1994-06-30"
## [6] "1994-12-31"

注意

Lines <- "
      Date
1990-12-31 
1991-12-31 
1992-12-31 
1993-12-31 
1994-06-30 
1994-12-31 "
DF <- read.table(text = Lines, header = TRUE)