r - "unlist" removes class in list elements (POSIXlt) -


this question has answer here:

i have object multi-level list, elements of class posixlt:

[[1]]  [1] "2015-07-16 gmt" "2015-07-16 gmt" "2015-07-16 gmt" "2015-07-16 gmt" "2015-07-15 gmt"  [6] "2015-07-15 gmt" "2015-07-15 gmt" "2015-07-15 gmt" "2015-07-15 gmt" "2015-07-14 gmt" [11] "2015-07-14 gmt" "2015-07-14 gmt" "2015-07-14 gmt" "2015-07-14 gmt" "2015-07-14 gmt" [16] "2015-07-14 gmt" "2015-07-14 gmt" "2015-07-14 gmt" "2015-07-14 gmt" "2015-07-14 gmt" [21] "2015-07-13 gmt" "2015-07-13 gmt" "2015-07-13 gmt" "2015-07-13 gmt" "2015-07-13 gmt" [26] "2015-07-13 gmt" "2015-07-13 gmt" "2015-07-13 gmt" "2015-07-13 gmt"  [[2]]  [1] "2015-07-12 gmt" "2015-07-11 gmt" "2015-07-11 gmt" "2015-07-11 gmt" "2015-07-11 gmt"  [6] "2015-07-10 gmt" "2015-07-10 gmt" "2015-07-10 gmt" "2015-07-09 gmt" "2015-07-09 gmt" [11] "2015-07-09 gmt" "2015-07-09 gmt" "2015-07-09 gmt" "2015-07-09 gmt" "2015-07-09 gmt" [16] "2015-07-09 gmt" "2015-07-08 gmt" "2015-07-08 gmt" "2015-07-08 gmt" "2015-07-08 gmt" [21] "2015-07-08 gmt" "2015-07-08 gmt" "2015-07-08 gmt" "2015-07-07 gmt" "2015-07-07 gmt" [26] "2015-07-07 gmt" "2015-07-07 gmt" "2015-07-07 gmt" "2015-07-06 gmt"  [[3]]  [1] "2015-07-06 gmt" "2015-07-06 gmt" "2015-07-06 gmt" "2015-07-06 gmt" "2015-07-06 gmt"  [6] "2015-07-06 gmt" "2015-07-06 gmt" "2015-07-06 gmt" "2015-07-06 gmt" "2015-07-05 gmt" [11] "2015-07-05 gmt" "2015-07-05 gmt" "2015-07-05 gmt" "2015-07-05 gmt" "2015-07-04 gmt" [16] "2015-07-04 gmt" "2015-07-04 gmt" "2015-07-04 gmt" "2015-07-03 gmt" "2015-07-03 gmt" [21] "2015-07-03 gmt" "2015-07-03 gmt" "2015-07-03 gmt" "2015-07-03 gmt" "2015-07-03 gmt" [26] "2015-07-03 gmt" "2015-07-02 gmt" "2015-07-02 gmt" "2015-07-02 gmt" 

when try make single vector unlist, object converted numeric (i.e. unlist(dates)). how can maintain posixlt class?

example data:

dates <- list(structure(list(sec = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), min = c(0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l), hour = c(0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l), mday = c(16l,  16l, 16l, 16l, 15l, 15l, 15l, 15l, 15l, 14l, 14l, 14l, 14l, 14l,  14l, 14l, 14l, 14l, 14l, 14l, 13l, 13l, 13l, 13l, 13l, 13l, 13l,  13l, 13l), mon = c(6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l,  6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l,  6l, 6l), year = c(115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l,  115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l,  115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l),      wday = c(4l, 4l, 4l, 4l, 3l, 3l, 3l, 3l, 3l, 2l, 2l, 2l,      2l, 2l, 2l, 2l, 2l, 2l, 2l, 2l, 1l, 1l, 1l, 1l, 1l, 1l, 1l,      1l, 1l), yday = c(196l, 196l, 196l, 196l, 195l, 195l, 195l,      195l, 195l, 194l, 194l, 194l, 194l, 194l, 194l, 194l, 194l,      194l, 194l, 194l, 193l, 193l, 193l, 193l, 193l, 193l, 193l,      193l, 193l), isdst = c(0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,      0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,      0l, 0l, 0l, 0l, 0l)), .names = c("sec", "min", "hour", "mday",  "mon", "year", "wday", "yday", "isdst"), class = c("posixlt",  "posixt"), tzone = "gmt"), structure(list(sec = c(0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0), min = c(0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,  0l, 0l, 0l), hour = c(0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,  0l, 0l, 0l), mday = c(12l, 11l, 11l, 11l, 11l, 10l, 10l, 10l,  9l, 9l, 9l, 9l, 9l, 9l, 9l, 9l, 8l, 8l, 8l, 8l, 8l, 8l, 8l, 7l,  7l, 7l, 7l, 7l, 6l), mon = c(6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l,  6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l,  6l, 6l, 6l, 6l, 6l), year = c(115l, 115l, 115l, 115l, 115l, 115l,  115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l,  115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l,  115l), wday = c(0l, 6l, 6l, 6l, 6l, 5l, 5l, 5l, 4l, 4l, 4l, 4l,  4l, 4l, 4l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 2l, 2l, 2l, 2l, 2l,  1l), yday = c(192l, 191l, 191l, 191l, 191l, 190l, 190l, 190l,  189l, 189l, 189l, 189l, 189l, 189l, 189l, 189l, 188l, 188l, 188l,  188l, 188l, 188l, 188l, 187l, 187l, 187l, 187l, 187l, 186l),      isdst = c(0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,      0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,      0l, 0l)), .names = c("sec", "min", "hour", "mday", "mon",  "year", "wday", "yday", "isdst"), class = c("posixlt", "posixt" ), tzone = "gmt"), structure(list(sec = c(0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0), min = c(0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l ), hour = c(0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l ), mday = c(6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 5l, 5l, 5l, 5l,  5l, 4l, 4l, 4l, 4l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 3l, 2l, 2l, 2l ), mon = c(6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l,  6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l, 6l ), year = c(115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l,  115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l,  115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l, 115l), wday = c(1l,  1l, 1l, 1l, 1l, 1l, 1l, 1l, 1l, 0l, 0l, 0l, 0l, 0l, 6l, 6l, 6l,  6l, 5l, 5l, 5l, 5l, 5l, 5l, 5l, 5l, 4l, 4l, 4l), yday = c(186l,  186l, 186l, 186l, 186l, 186l, 186l, 186l, 186l, 185l, 185l, 185l,  185l, 185l, 184l, 184l, 184l, 184l, 183l, 183l, 183l, 183l, 183l,  183l, 183l, 183l, 182l, 182l, 182l), isdst = c(0l, 0l, 0l, 0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l,  0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l)), .names = c("sec", "min",  "hour", "mday", "mon", "year", "wday", "yday", "isdst"), class = c("posixlt",  "posixt"), tzone = "gmt")) 

usually it's far better use posixct. however, if list not nested use c:

do.call(c, dates) 

Comments