Преобразовать список / вектор строк с форматом даты в класс даты 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)
Вы можете проверить документ для более подробной информации.