将20100502形式的字符串转换为R中的日期格式

时间:2018-10-08 13:01:06

标签: r date

如何将诸如j之类的字符串转换为日期格式20100502

我尝试使用

进行转换
%m/%d/%Y

但是,结果是as.Date(20100502, origin="1970-01-01", format = "%Y-%m-%d") 而不是"57003-04-23"

2 个答案:

答案 0 :(得分:4)

您可以使用as.Dateformat

format(as.Date("20100502", format = "%Y%m%d"), "%m/%d/%Y")
#[1] "05/02/2010"

format中的as.Date参数是指您向函数提供数据的格式。然后在函数format中提供所需的格式。


来自?as.Date

  

as.Date将接受数字数据(自一个纪元以来的天数),但前提是提供了原点。

@Wimpel在注释中建议的解决方法是将x包裹在as.character中。

X$new_Date <- format(as.Date(as.character(X$Date), format = "%Y%m%d"), "%m/%d/%Y")

答案 1 :(得分:0)

如果您已经知道正则表达式,那么它提供了一种非常通用的操作字符串变量的方式:

date <- "20100502"
gsub("(\\d{4})(\\d{2})(\\d{2})", "\\2/\\3/\\1", date)
#[1] "05/02/2010"