【发布时间】:2011-11-14 18:49:07
【问题描述】:
我今天的第二个问题,也是我最后一次尝试使用 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
到底发生了什么?在将这些数据带入 R 进行分析之前,我最好使用 Python 或 Java 之类的东西来完成我需要对这些数据执行的所有数据操作吗?
【问题讨论】:
标签: r