我有一个日期,我试图将它们转换为数字,然后恢复为原始日期。
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"
我注意到时间间隔的问题。我该怎么办才能获得原始日期?
答案 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)