1

我在 R 中有这个日期:

> head(mydates)

[1] "2007-01-01" "2007-01-02" "2007-01-03" "2007-01-04" "2007-01-05" "2007-01-08"
> class(mydates)

[1] "Date"

我想把它改成这种格式

> head(targetdates)

[1] "2007-01-01 GMT" "2007-01-02 GMT" "2007-01-03 GMT" "2007-01-04 GMT"
[5] "2007-01-05 GMT" "2007-01-08 GMT"
> class(targetdates)

[1] "POSIXct" "POSIXt"

我该怎么做(在 R 中)?

谢谢

4

4 回答 4

0

您可以使用as.POSIXlt

R> as.POSIXlt(mydates, tz="GMT")
[1] "2007-01-01 UTC" "2007-01-02 UTC" "2007-01-03 UTC" "2007-01-04 UTC"
[5] "2007-01-05 UTC" "2007-01-08 UTC"
于 2013-04-05T08:50:51.087 回答
0

你可以使用as.POSIXct

mydates
## [1] "2007-01-01" "2007-01-02" "2007-01-03" "2007-01-04" "2007-01-05" "2007-01-08"

class(mydates)
## [1] "Date"

Sys.setenv(TZ = "GMT") #necessary of you want dates to be printed in GMT
as.POSIXct(mydates)
## [1] "2007-01-01 GMT" "2007-01-02 GMT" "2007-01-03 GMT" "2007-01-04 GMT" "2007-01-05 GMT" "2007-01-08 GMT"

另请阅读?POSIXct

于 2013-04-05T09:13:34.253 回答
0

使用该lubridate软件包,您可以通过以下功能将日期“强制”为 GMT force_tz

library(lubridate)

mydate <- as.Date("2007-01-01")
class(mydate)
#[1] "Date"

mydate1 <- as.POSIXlt(mydate) # or use as.POSIXct but you get a datetime format then.
mydate1
#[1] "2007-01-01 UTC"

mydate2 <- force_tz(mydate1, tzone = "GMT")
mydate2
#[1] "2007-01-01 GMT"

class(mydate2)
#[1] "POSIXlt" "POSIXt" 
于 2013-04-05T09:42:12.550 回答
0

试试这个:

> as.POSIXct(format(mydates), tz = "GMT")
[1] "2007-01-01 GMT" "2007-01-02 GMT" "2007-01-03 GMT" "2007-01-04 GMT"
[5] "2007-01-05 GMT" "2007-01-08 GMT"

"Date"(如果您的数据是每天的,那么您为什么要这样做而不是坚持上课。)

于 2013-04-05T12:44:23.580 回答