【问题标题】:how to convert factor column into date in data frame in r如何将因子列转换为r中数据框中的日期
【发布时间】:2019-03-07 01:04:09
【问题描述】:

我在 r 中有一个具有以下结构的数据框:

TERMINAL_ID ACTION_DATE ACC_AMOUNT
1009162   02-JAN-18      14.30
1009162   02-JAN-18      21.45

'action_date' 的类是因素,我会将其转换为日期。 我试过这段代码但没有成功

dataf <- as.Date(as.character(data$ACTION_DATE),
                                format = "%d-%y-%Y")
fdate=as.POSIXlt(data$ACTION_DATE, "%d-%b-%y")

【问题讨论】:

    标签: r date dataframe type-conversion r-factor


    【解决方案1】:
    as.Date('02-JAN-18', format = '%d-%B-%y')
    
    [1] "2018-01-02"
    

    【讨论】:

    • 或使用 lubridate
    • 你是如何应用代码的?它不应该给 NA @MarBlo 你的解决方案也是有效的,你能确认这个解决方案不会产生 NA 吗?
    • @astrofunkswag:我给出的答案不会产生 NA。如果您查看 x85ms16 是如何使用答案的,您会发现,如果输入数据的格式不正确,您会发现存在 NA。
    【解决方案2】:

    或使用 lubridate

    library(lubridate)
    dmy("02-Jan-17")
    

    这会将保存 d(ays)m(onth)y(ear) 中日期的角色转换为日期格式。

    【讨论】:

      【解决方案3】:

      我已经使用您提到的日期格式创建了矢量x。使用lubridate 包,解决方案非常简单。

      x<- as.factor(c("02-JAN-18", "03-JAN-19", NA, "abc"))
      lubridate::dmy(x)
      #> Warning: 1 failed to parse.
      #> [1] "2018-01-02" "2019-01-03" NA           NA
      

      reprex package (v0.2.1) 于 2018 年 10 月 1 日创建

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-14
        相关资源
        最近更新 更多