【发布时间】:2012-01-20 02:43:54
【问题描述】:
我有一个数据集,我正试图根据条件将其分成“事件”。我想创建一个连续的组号(ID),每次满足条件时都会增加。
某些类型的记录表明新事件已经开始,而其他类型的记录表示没有变化/保持不变。
例如,在此数据集中,只要“Action”为“Left”或“Right”,则新事件已开始,“Id”应增加 1:
| Id | Action |
|-----+---------|
| 1 | Left |
| 2 | Forward |
| 3 | Forward |
| 4 | Right |
| 5 | Forward |
| 6 | Left |
| ... | ... |
我想要的结果表如下所示:
| Id | Action | GroupId |
|-----+---------+---------|
| 1 | Left | 1 |
| 2 | Forward | 1 |
| 3 | Forward | 1 |
| 4 | Right | 2 |
| 5 | Forward | 2 |
| 6 | Left | 3 |
| ... | ... | ... |
在 python 之类的东西中,我可以用一个计数器和一个 for 循环(伪代码)来做到这一点:
GroupID = 1
for row in data:
if Action == "Left" OR Action == "Right":
GroupID = GroupID + 1
else:
GroupID = GroupID
我觉得这应该是一个非常简单的单线,但我现在脑子坏了,我很难概念化这个。
【问题讨论】:
标签: r