Преобразовать список / вектор строк с форматом даты в класс даты posix с помощью R

У меня есть список строк в нашем формате даты, и я хочу преобразовать его в список дат posix, которыми я могу манипулировать с помощью R, как я могу это сделать?

Это то, что у меня есть, но я получаю список списков:

 a <- c("2009.01.01 00:00:00", "2009.01.01 00:00:00")

z <- lapply(a,function(x){strptime(x, "%Y.%m.%d %H:%M:%S")})

> z <- lapply(a,function(x){strptime(x, "%Y.%m.%d %H:%M:%S")})
> summary(z)
     Length Class   Mode
[1,] 1      POSIXlt list
[2,] 1      POSIXlt list

2 ответа

Решение

strptime векторизовано:

a <- c("2009.01.01 12:20:10", "2009.01.01 04:12:14")
> out <- strptime(a, "%Y.%m.%d %H:%M:%S")
> str(out)
 POSIXlt[1:2], format: "2009-01-01 12:20:10" "2009-01-01 04:12:14"

вы можете использовать функцию c() с:

      do.call(c,z)

Вы можете проверить документ для более подробной информации.

Другие вопросы по тегам