用vapply返回类POSIXct的向量

Dmi*_* I. 6 r posixct

我有POSIXct类的日期列表如下(只是一个最小的工作示例):

L <- list(as.POSIXct("2012-12-12 12:12:12"), as.POSIXct("2012-12-12 12:12:12"))
Run Code Online (Sandbox Code Playgroud)

我需要从中检索类POSIXct的向量.这排除了lapply,并给我一个sapply和vapply.我按如下方式申请:

sapply(L, "[[", 1)
Run Code Online (Sandbox Code Playgroud)

这会返回:

[1] 1355310732 1355310732
Run Code Online (Sandbox Code Playgroud)

将此向量转换为POSIXct会产生错误,因为必须提供原点.我也试过vapply:

vapply(L, "[[", as.POSIXct(Sys.time()), 1)
Run Code Online (Sandbox Code Playgroud)

但也获得了返回的数字向量:

[1] 1355310732 1355310732
Run Code Online (Sandbox Code Playgroud)

unlist也不会产生所需的POSIXct向量:

> unlist(L)
[1] 1355310732 1355310732 
Run Code Online (Sandbox Code Playgroud)

简而言之,如何将POSIXct值列表提取到POSIXct向量中?

pla*_*pus 11

怎么样do.call

L <- list(as.POSIXct("2012-12-12 12:12:12"), as.POSIXct("2012-12-12 12:12:12"))
do.call(c, L) # Execute function c on a list L of arguments.
[1] "2012-12-12 12:12:12 CET" "2012-12-12 12:12:12 CET"
Run Code Online (Sandbox Code Playgroud)

  • 如果原始列表具有tz属性.L < - list(as.POSIXct("2012-12-12 12:12:12",tz ="UTC"),as.POSIXct(这可能会更改时区) "2012-12-12 12:12:12",tz ="GMT"))`如果所有的tz值都相同,很容易修复,例如`.POSIXct(do.call(c,L), tz ="UTC")`但是如果它们不同,你怎么能保留时区呢? (3认同)