Мой второй вопрос дня и моя последняя попытка использовать R для очистки этих данных. Здесь sitrep:
У меня есть кадр данных, который имеет столбец, который является типом даты POSIXlt. Я хочу извлечь из этой колонки день, месяц и год и создать 3 новых столбца, называемых (умно) день, месяц и год.
Кадр данных выглядит следующим образом:
order_id dd_mmm_yy
1 2005-07-28
2 2007-03-04
Я хочу закончить с этим:
order_id dd_mmm_yy day month year
1 2005-07-28 28 7 2005
2 2007-03-04 4 3 2007
Я создал функцию для извлечения дня, месяца и года и возврата их в список (или фрейм данных, я попробовал оба).
extractdate = function (date) {
day = format(date, format="%d")
month = format(date, format="%m")
year = format(date, format="%Y")
list(day=day, month=month, year=year)
}
Вот что я пробовал на основе более ранней проблемы и вопроса:
cbind(orders, t(sapply(orders$dd_mmm_yy, extractdate)))
который дает мне это:
Error in data.frame(..., check.names = FALSE) :
arguments imply differing number of rows: 5, 9
t (sapply... сам по себе дает мне это по какой-то сумасшедшей причине:
day month year
sec Character,5 Character,5 Character,5
min Character,5 Character,5 Character,5
hour Character,5 Character,5 Character,5
mday Character,5 Character,5 Character,5
mon Character,5 Character,5 Character,5
year Character,5 Character,5 Character,5
wday Character,5 Character,5 Character,5
yday Character,5 Character,5 Character,5
isdst Character,5 Character,5 Character,5
Что происходит? Мне лучше использовать что-то вроде Python или Java для выполнения всех манипуляций с данными, которые мне нужно сделать для этих данных, прежде чем вводить их в R для анализа?