我有一个大 data.frame,我想生成一个新列(称为 Seq),其中有一个顺序值,每次不同列发生更改时都会重新启动。下面是 data.frame(省略了列)和名为 Seq 的新列的示例。正如您所看到的,有一个连续计数,但每次有新的 IDPath 时,连续计数都会重新开始。
sequentiel 长度可以有不同的长度,有些是 1 长,有些是 300 长。
IDPath LogTime Seq
AADS 19-06-2015 01:57 1
AADS 19-06-2015 01:55 2
AADS 19-06-2015 01:54 3
AADS 19-06-2015 01:53 4
DHSD 19-06-2015 12:57 1
DHSD 19-06-2015 10:58 2
DHSD 19-06-2015 09:08 3
DHSD 19-06-2015 08:41 4
Using data.table
包,这是获得你想要的东西的方法:
require(data.table)
setDT(dt)[, Seq:=1:.N, by=IDPath]
# or, as mentioned by @DavidArenburg
setDT(dt)[, Seq:=seq_len(.N), by=IDPath]
dt
# IDPath LogTime Seq
#1: AADS 19-06-2015 01:57 1
#2: AADS 19-06-2015 01:55 2
#3: AADS 19-06-2015 01:54 3
#4: AADS 19-06-2015 01:53 4
#5: DHSD 19-06-2015 12:57 1
#6: DHSD 19-06-2015 10:58 2
#7: DHSD 19-06-2015 09:08 3
#8: DHSD 19-06-2015 08:41 4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)