将日期转换为数字并返回日期
convert date to numeric and back to 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"
我注意到时间间隔的问题。我应该怎么做才能获得原始日期?
如果您拥有的是一个数据框,其列为 class factor
,如末尾注释中所示,那么我们不想将 as.numeric
应用于该数据框因为那只会给出没有意义的因子水平的基础代码。相反,这给出 Date
class:
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
class:
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)
我有一些日期,我正在尝试将它们转换为数字,然后再恢复为原始日期。
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"
我注意到时间间隔的问题。我应该怎么做才能获得原始日期?
如果您拥有的是一个数据框,其列为 class factor
,如末尾注释中所示,那么我们不想将 as.numeric
应用于该数据框因为那只会给出没有意义的因子水平的基础代码。相反,这给出 Date
class:
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
class:
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)