【问题标题】:How do I assign an index to a date in the order of days?如何按天数为日期分配索引?
【发布时间】:2016-04-02 01:06:11
【问题描述】:

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

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

我该如何解决这个问题?

【问题讨论】:

    标签: r indexing


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2020-12-04
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      相关资源
      最近更新 更多