【问题标题】:convert specified columns to dates in R将指定的列转换为 R 中的日期
【发布时间】:2013-06-11 19:22:42
【问题描述】:

我想将 2:4 列中的数字数据转换为日期。我可以逐列完成此操作,但不能一次完成所有操作。我认为这与其中的名称列有关,但我试图告诉 R 只是使用我想要的列。我究竟做错了什么?提前致谢!

names<-c("tom", "dick", "harry", "mary", "susie")
date_1<-c(15127, 15034, 15034, 15141, 15013)
date_2<-c(15155, 15062, 15064, NA, 15041)
date_3<-c(15185, 15091, 15092, NA, 15069)
df<-data.frame(names, date_1, date_2, date_3)
df




as.Date(df$date_1, origin="1970-01-01")
[1] "2011-06-02" "2011-03-01" "2011-03-01" "2011-06-16" "2011-02-08"


as.Date(df[,2:4], origin="1970-01-01")
Error in as.Date.default(df[, 2:4], origin = "1970-01-01") : 
  do not know how to convert 'df[, 2:4]' to class “Date”

【问题讨论】:

    标签: r date


    【解决方案1】:

    数据框是列表。使用lapply:

    df[,-1] <- lapply(df[,-1],as.Date,origin = "1970-01-01")
    > df
      names     date_1     date_2     date_3
    1   tom 2011-06-02 2011-06-30 2011-07-30
    2  dick 2011-03-01 2011-03-29 2011-04-27
    3 harry 2011-03-01 2011-03-31 2011-04-28
    4  mary 2011-06-16       <NA>       <NA>
    5 susie 2011-02-08 2011-03-08 2011-04-05
    

    【讨论】:

    • 嗨乔兰!感谢您的帮助。我在同一个 df 上复制了您的代码并收到此错误错误 get(as.character(FUN), mode = "function", envir = envir) : object '2010-02-01' of mode 'function' is not found .我检查了拼写错误,看起来没问题。
    • 等等!!等等,它在 Rstudio 中工作!但是为什么它不在R中?我已经加载了 plyr?
    • @user2363642 应该没有任何区别。 (我在 OS X R GUI 和 RStudio 中对其进行了测试。)
    • 是的,你是对的。在清理我的工作区后刚刚尝试过,它工作得非常好。再次感谢您!
    • 只有一个问题,如果在我的数据框列中我有“15127”和“2011-03-01”格式,我应该如何只转换带有 as.Date 的“15127”?提前致谢
    猜你喜欢
    • 2021-01-03
    • 2021-12-18
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多