【问题标题】:how to get rid of timestamp and change column into date format R如何摆脱时间戳并将列更改为日期格式R
【发布时间】:2021-08-31 23:20:20
【问题描述】:

我有一个日期格式如下的数据集。我想:

1.去掉日期列的时间,使它变成2/06/2020或者更好的2Jun2020

2.然后我想将我的列Date 转换为日期格式,以便我可以对其进行子集化

> print(df$Date)
   [1] "2/06/2020 0:00"  "12/06/2020 0:00" "12/06/2020 0:00" "29/06/2020 0:00" "3/06/2020 0:00"  "25/06/2020 0:00" "25/06/2020 0:00"
   [8] "25/06/2020 0:00" "26/06/2020 0:00" "18/06/2020 0:00" "3/06/2020 0:00"  "4/06/2020 0:00"  "10/06/2020 0:00" "10/06/2020 0:00"

> summary(df$Date)
   Length     Class      Mode 
    16749 character character 

我试过了,但它返回了所有NA's

df$Date2 <- as.Date(df$Date, format = "%d-%m-%Y %H:%M")

【问题讨论】:

    标签: r date time lubridate


    【解决方案1】:

    这行得通吗:

    d <- c("2/06/2020 0:00",  "12/06/2020 0:00", "12/06/2020 0:00", "29/06/2020 0:00")
    as.Date(gsub('(.*)(\\s\\d:\\d{2})','\\1',d),format = '%d/%m/%Y')
    [1] "2020-06-02" "2020-06-12" "2020-06-12" "2020-06-29"
    

    如果你想要02/06/2020 格式:

    format(as.Date(gsub('(.*)(\\s\\d:\\d{2})','\\1',d),format = '%d/%m/%Y'),'%d/%m/%Y')
    [1] "02/06/2020" "12/06/2020" "12/06/2020" "29/06/2020"
    

    【讨论】:

      【解决方案2】:

      基于之前的答案:

      d = "2/06/2020 0:00"
      x = format(as.Date(gsub('(\\s\\0(\\d):\\0(\\d){2})','\\1',d),format = '%d/%m/%Y'),'%d/%m/%Y')
      gsub("^0+(\\d)", "\\1", x)
      
      # [1] "2/06/2020"
      

      【讨论】:

        猜你喜欢
        • 2020-12-16
        • 1970-01-01
        • 1970-01-01
        • 2022-09-28
        • 2016-07-11
        • 1970-01-01
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多