我有这个数据框,我将其与时间一起导入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格式。
如果可以的话,您能告诉我怎么做吗?
答案 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)