Вопрос

У меня есть, возможно, очень простой вопрос.Я хочу обработать столбец объектов POSIXct из фрейма данных и сгенерировать вектор строк datetime.Я попытался использовать следующий вызов sapply

dt <- sapply(df$datetime, function(x) format(x,"%Y-%m-%dT%H:%M:%S"))

но безрезультатно.Я продолжаю получать следующую ошибку:

> Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L,  :
invalid 'trim' argument

Когда я применяю эту функцию к одному объекту POSIXct из столбца, у меня не возникает проблем.Так что на данный момент я в тупике относительно того, в чем проблема.Нужно ли мне делать что-то особенное с объектами POSIXct?

Это было полезно?

Решение

format() примет векторный аргумент, так что format(df$datetime,"%Y-%m-%dT%H:%M:%S") должен делать то, что вам нужно.

Когда вы используете sapply, ваши объекты преобразуются в числовые, и поэтому вызывается неправильный метод format .Вы могли бы принудительно вернуть их к POSIXct, используя sapply(df$datetime, function(x) format(as.POSIXct(x, origin="1970-01-01"),"%Y-%m-%dT%H:%M:%S")), но если у вас нет особой причины использовать apply, просто используйте описанный выше метод

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top