如何按日期顺序为日期分配索引?

时间:2016-04-02 01:06:11

标签: r indexing

我想按天的顺序给出一个日期索引。 我的意思是

date       day
3/4/2016    1
3/7/2016    2
3/7/2016    2
3/11/2016   3

当我使用下面的代码时,

b$day<-as.Date(b$date,"%m/%d/%y")
levels(b$day) <- 1:length(levels(b$day))
b$day <- as.numeric(b$day)

它计算数据中不均匀的日期。经过一些减法后,我得到的是,

date       day
3/4/2016    1
3/7/2016    4
3/7/2016    4
3/11/2016   8

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以这样做:

b <- data.frame(date=c('3/4/2016','3/7/2016','3/7/2016','3/11/2016'),stringsAsFactors=F);
b;
##        date
## 1  3/4/2016
## 2  3/7/2016
## 3  3/7/2016
## 4 3/11/2016
b$day <- as.Date(b$date,'%m/%d/%Y');
b$day <- match(b$day,sort(unique(b$day)));
b;
##        date day
## 1  3/4/2016   1
## 2  3/7/2016   2
## 3  3/7/2016   2
## 4 3/11/2016   3