关于日期时间:如何更改 R 中的日期值?

How to change date value in R?

我有这个数据框,我只在 R 中导入了时间,它自动添加了日期,格式如下:

1
2
3
4
 horidat$CORD4
 [1]"1899-12-31 06:25:00 UTC""1899-12-31 06:45:00 UTC""1899-12-31 07:00:00 UTC""1899-12-31 07:15:00 UTC"
 [5]"1899-12-31 07:30:00 UTC""1899-12-31 07:45:00 UTC""1899-12-31 07:57:00 UTC""1899-12-31 08:09:00 UTC"
 [9]"1899-12-31 08:21:00 UTC""1899-12-31 08:32:00 UTC""1899-12-31 08:43:00 UTC""1899-12-31 08:54:00 UTC"

我只想将日期 1899-12-31 更改为不同的日期,例如 2010-01-25。它们采用 POSIXct 格式。

如果可能的话,你能告诉我怎么做吗?


这样就可以了(在 base R 中)

1
2
3
4
5
6
7
8
9
10
paste('2010-01-25', format(as.POSIXct(horidat$CORD4), '%T'))
# [1]"2010-01-25 06:25:00""2010-01-25 06:45:00"

# or with (local) time zone
paste('2010-01-25', format(as.POSIXct(horidat$CORD4), '%T %Z')) # or %z for digits
# [1]"2010-01-25 06:25:00 CET""2010-01-25 06:45:00 CET" # (I'm in a different time zone)

# or keeping the class POSIXct
as.POSIXct(paste('2010-01-25', format(as.POSIXct(horidat$CORD4), '%T')))
# [1]"2010-01-25 06:25:00 CET""2010-01-25 06:45:00 CET"

与数据

1
2
horidat <- data.frame(CORD4 = c('1899-12-31 06:25:00 UTC','1899-12-31 06:45:00 UTC'),
                      stringsAsFactors = FALSE)