我有日期向量:
d <- c("30/5/15", "6/6/15", "23/5/15")
我想将其转换为2, 3, 1
,排名最小,最新,最新。
我尝试了rank(d)
,但看起来它只根据天数和反向进行排名,它会返回3, 1, 2
。
答案 0 :(得分:3)
转换为Date
课程,然后转为numeric
,然后rank
:
d <- c("30/5/15", "6/6/15", "23/5/15")
rank(as.numeric(as.Date(d, "%d/%m/%y")))
#[1] 2 3 1
评论意见:
as.numeric
,因为 rank 可以处理日期。虽然最好是明确的。library(lubridate); rank(dmy(d))
答案 1 :(得分:0)
将数据转换为日期格式,然后对其进行排名。内部日期将保存为数值。所以它可以在它上面排名。
d <- c("30/5/15", "6/6/15", "23/5/15")
rank(as.Date(d,'%d/%m/%y'))