2

文字の Date "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="")))
4

3 に答える 3

10

使用できますas.numeric(format(as.Date(date.ch), '%Y%m%d'))

[1] 20080101 20090202 20100303 20110404 20120505
于 2012-11-06T21:21:26.433 に答える
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"))
于 2012-11-06T21:13:40.343 に答える
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)
于 2012-11-06T21:33:56.577 に答える