将日期向量转换为排名

时间:2015-07-21 09:34:52

标签: r date rank

我有日期向量:

d <- c("30/5/15", "6/6/15", "23/5/15")

我想将其转换为2, 3, 1,排名最小,最新,最新。

我尝试了rank(d),但看起来它只根据天数和反向进行排名,它会返回3, 1, 2

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

评论意见:

  • drop as.numeric,因为 rank 可以处理日期。虽然最好是明确的。
  • 使用lubridate包: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'))