日期格式更改

时间:2019-02-08 14:43:08

标签: r

我只是准备像cols<- c("Metrics",as.Date(Sys.Date()-8,origin="1899-12-30"),as.Date(Sys.Date()-1,origin="1899-12-30"))这样的表,但没有得到预期的输出。任何人都可以帮忙。
输出:“指标”“ 17927”“ 17934”

cols<- c("Metrics",as.Date(Sys.Date()-8,origin="1899-12-30"),as.Date(Sys.Date()-1,origin="1899-12-30"))

cols<- c("Metrics",as.Date(Sys.Date()-8,origin="1899-12- 
30"),as.Date(Sys.Date()-1,origin="1899-12-30"))

预期输出:

"Metrics" "2019-01-31"   "2019-02-07" 

1 个答案:

答案 0 :(得分:1)

1)字符输出:如果要查找字符向量,则将Date类组件转换为character。另请注意,由于as.Date及其偏移量已经属于Sys.Date()类,因此不需要问题中显示的Date。还要注意,如果Sys.Date()在午夜被两次调用,则两次调用可能发生在不同的日期。为了避免这种可能性,我们创建了一个today变量,因此只需调用一次即可。

today <- Sys.Date()
cols <- c("Metrics", as.character(today-8), as.character(today-1))
cols
## [1] "Metrics"    "2019-01-31" "2019-02-07"

1a),这可以变得更短。

cols <- c("Metrics", as.character(Sys.Date() - c(8, 1)))
cols
## [1] "Metrics"    "2019-01-31" "2019-02-07"

2)列表输出或者,如果您想要的是一个包含一个character组件和两个Date组件的列表,则:

today <- Sys.Date()
L <- list("Metrics", today - 8, today - 1)
L

给予:

[[1]]
[1] "Metrics"

[[2]]
[1] "2019-01-31"

[[3]]
[1] "2019-02-07"

如果我们已经有了L并且想要一个字符向量,那么我们可以像这样进一步转换它:

sapply(L, as.character)
## [1] "Metrics"    "2019-01-31" "2019-02-07"