R日期格式,包含两位数的月份和天数

时间:2012-11-06 21:07:12

标签: r

我需要将角色日期“2008-1-1”变为数字20080101,但我得到的是200811,有人可以帮我吗?非常感谢你。这是我的代码:

year <- c(2008:2012)
mth <- c(1:5)  
day <- c(1:5) 
A <- data.frame(cbind(year,mth,day)) 
date.ch <- as.character(with(A, paste(year, mth, day, sep="-")))
date.n <- as.numeric(with(A, paste(year, mth, day, sep="")))

3 个答案:

答案 0 :(得分:9)

您可以使用as.numeric(format(as.Date(date.ch), '%Y%m%d'))

[1] 20080101 20090202 20100303 20110404 20120505

答案 1 :(得分:3)

正如@Andrie所说,sprintf是一个很好的功能:

with(A, as.numeric(sprintf("%i%02i%02i", year, mth, day)))
# [1] 20080101 20090202 20100303 20110404 20120505

正如@mplourde在评论中指出的那样已经消失在以太中,如果你只有date.ch对象,你可以

as.numeric(strftime(date.ch, format = "%Y%m%d"))

答案 2 :(得分:1)

简单的乘法和加法怎么样?

A <- data.frame(cbind(year=rep(2008:2011,6),mth=rep(1:12,2),day=1:24))
with(A, year*1e4 + mth*1e2 + day)