如何将诸如j
之类的字符串转换为日期格式20100502
我尝试使用
进行转换%m/%d/%Y
但是,结果是as.Date(20100502, origin="1970-01-01", format = "%Y-%m-%d")
而不是"57003-04-23"
答案 0 :(得分:4)
您可以使用as.Date
和format
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"