为列中的每个组分配一个整数

时间:2018-08-13 15:49:13

标签: r grouping

我有一个这样组织的数据集

Date:
4/2/2018
5/6/2018
4/2/2018
7/1/2018
7/1/2018
5/6/2018

我希望这样组织:

Date:                ID:
4/2/2018             1 
5/6/2018             2
4/2/2018             1
7/1/2018             3
7/1/2018             3
5/6/2018             2

有人知道该怎么做吗?我的数据组织在一个数据表中,其中日期作为列之一,我需要创建一个名为id的新列。

1 个答案:

答案 0 :(得分:0)

我们可以使用rleid中的data.table

library(data.table)
dt[order(Date),ID:=rleid(Date)]

结果:

       Date ID
1: 4/2/2018  1
2: 5/6/2018  2
3: 4/2/2018  1
4: 7/1/2018  3
5: 7/1/2018  3
6: 5/6/2018  2

数据:

dt <- read.table(text = "Date
4/2/2018
                 5/6/2018
                 4/2/2018
                 7/1/2018
                 7/1/2018
                 5/6/2018", header = TRUE, stringsAsFactors = FALSE)

setDT(dt)