r - 从POSIXlt中提取日期元素,并放入R中的数据框

标签 r

我今天的第二个问题,也是我最后一次使用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之类的工具对这些数据进行所有数据处理?

最佳答案

POSIXlt对象是9个组件的列表(有关更多信息,请参见?POSIXlt的“详细信息”部分)。由于dd_mmm_yy列为POSIXlt,因此不需要提取组件的函数。您可以按组件名称提取它们:

orders$day <- orders$dd_mmm_yy$mday        # day of month
orders$month <- orders$dd_mmm_yy$mon+1     # month of year (zero-indexed)
orders$year <- orders$dd_mmm_yy$year+1900  # years since 1900
orders
#   order_id  dd_mmm_yy day month year
# 1        1 2005-07-28  28     7 2005
# 2        2 2007-03-04   4     3 2007

关于r - 从POSIXlt中提取日期元素,并放入R中的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8126537/

相关文章:

r - 仅针对选定的列旋转更长的时间

r - 如何将多个 ggplot2 元素组合到函数的返回中?

r - tapply 函数提示 args 的长度不相等,但它们似乎匹配

android - 减去 R 中数据框中的列。 A-B=已校正 A。这些是传感器中从数据帧 B 寻求校正的抽象值

r - 如何估计一系列线性段以拟合指数曲线?

r - R 是否错误地计算了具有低单元格计数的 2x2 表的卡方统计量?

r - 如何使用 xml2 和 purrr 提取不同级别的 xml_attr 和 xml_text?

r - qplot 调用覆盖列表元素

以特定形式 reshape 数据

javascript - 使用 OpenCPU 显示 R 函数的 html 返回