【问题标题】:How keep only date variable without time-field string [duplicate]如何只保留没有时间字段字符串的日期变量[重复]
【发布时间】:2018-07-30 12:15:54
【问题描述】:

How to remove time-field string from a date-as-character variable? 此处提出的问题相比,我的问题具有一般性。

其实假设我有这个日期类型变量:

> head(DataDia$Date)
[1] "2016-09-13 15:56:30.827" "2016-12-12 13:39:17.537" "2016-09-16 21:57:24.977" "2016-09-23 11:19:22.010"
[5] "2017-01-11 20:06:58.490" "2016-10-21 23:40:43.927"

如何删除所有时间字段字符串并只保留日期格式。所以我得到了这个:

> head(DataDia$Date)
[1] "2016-09-13" "2016-12-12" "2016-09-16" "2016-09-23"
[5] "2017-01-11" "2016-10-21"

请注意,我正在处理数据表。所以我需要一种使用 data.table 的方法 操作。

【问题讨论】:

    标签: r


    【解决方案1】:

    只需使用as.Date(DataDia$Date)

    【讨论】:

      【解决方案2】:

      结合as.Dateas.character

      x = c("2016-09-13 15:56:30.827", "2016-12-12 13:39:17.537", "2016-09-16 21:57:24.977", "2016-09-23 11:19:22.010",
              "2017-01-11 20:06:58.490", "2016-10-21 23:40:43.927")
      
      y = as.character(as.Date(x, format = "%Y-%m-%d"))
      
      y
      [1] "2016-09-13" "2016-12-12" "2016-09-16" "2016-09-23" "2017-01-11" "2016-10-21"
      

      【讨论】:

      • 为什么要加载 lubridate?
      • 确实如此。它可以作为基本解决方案。谢谢
      • as.character 的意义何在?
      【解决方案3】:

      你可以使用:

      as.POSIXct(Df$Date,format='%Y-%m-%d',tz= "UTC")

      【讨论】:

        猜你喜欢
        • 2014-05-30
        • 2017-09-10
        • 1970-01-01
        • 2017-07-17
        • 1970-01-01
        • 2020-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多