R日期格式,月和日为两位数
我需要将字符日期“2008-1-1”转换为数字20080101,但我得到的是200811,有人能帮我吗?非常感谢你。这是我的代码:R日期格式,月和日为两位数,r,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 <- a
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="")))
year正如@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"))
您可以使用as.numeric(格式为as.Date(Date.ch),“%Y%m%d”)
简单的乘法和加法怎么样
A <- data.frame(cbind(year=rep(2008:2011,6),mth=rep(1:12,2),day=1:24))
with(A, year*1e4 + mth*1e2 + day)
A您可能必须使用sprintf
来执行此操作。@mplourde,啊,是的。我知道我投票支持你的答案有两个原因。
A <- data.frame(cbind(year=rep(2008:2011,6),mth=rep(1:12,2),day=1:24))
with(A, year*1e4 + mth*1e2 + day)