如何在R中更改日期值?

时间:2019-01-22 11:05:31

标签: r datetime posixct

我有这个数据框,我将其与时间一起导入R中,它会自动添加日期,格式如下:

 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格式。

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

1 个答案:

答案 0 :(得分:4)

这将完成(在base R中)

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"

与数据

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