我有一堆约会:
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天。
答案 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"))