首页 > 解决方案 > 为列中的每个组分配一个整数

问题描述

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

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 的新列。

标签: rgrouping

解决方案


我们可以使用rleidfrom 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)

推荐阅读