将日期转换为数字

时间:2013-12-10 20:54:47

标签: r ubuntu

我有一堆约会:

dates
 [1] "24/06/2010" NA           NA           NA           "11/05/2005" NA           "24/02/2006"
 [8] NA           NA           NA           "27/10/2008" "09/05/2009" NA           NA          
[15] "14/12/2008" "14/12/2008" NA           "07/04/2009" NA       

想要制作一个新的向量,其中日期转换为数字,NA转换为-1值。我知道在Excel日期根据标准程序转换为数字,这里我不知道。

例如,如果我们将作为开始日期01/01/2008修改为数字0并从那里开始计数

24/06/2010将从开始日期算起905天。

2 个答案:

答案 0 :(得分:3)

这是一种方法:

# the reference date
starting_date <- as.Date("2008-01-01") 
# transform the character vector to a date vector and subtract the reference date
res <- as.Date(dates, "%d/%m/%Y") - starting_date
# replace NAs with -1
res[is.na(res)] <- -1

结果:

# Time differences in days
#  [1]  905   -1   -1   -1 -965   -1 -676   -1   -1   -1  300  494   -1   -1  348
# [16]  348   -1  462   -1

答案 1 :(得分:0)

[更新]这是否适合您的问题?

ifelse(is.na(dates),-1,as.Date(strptime(dates,'%d/%m/%Y'))-as.Date("2008-01-01"))