繁体   English   中英

如何摆脱时间戳并将列更改为日期格式 R

[英]how to get rid of timestamp and change column into date format R

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

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")

这是否有效:

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"

基于先前的答案:

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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM