Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 每次满足条件时递增ID号_R - Fatal编程技术网

R 每次满足条件时递增ID号

R 每次满足条件时递增ID号,r,R,我有一个数据集,我正试图根据条件将其分块成“事件”。我想创建一个连续的组号(ID),它在每次满足条件时都会增加 某些类型的记录表示新事件已开始,而其他类型的记录表示没有改变/保持过程 例如,在此数据集中,每当“Action”为“Left”或“Right”时,一个新事件已启动,“Id”应递增1: | Id | Action | |-----+---------| | 1 | Left | | 2 | Forward | | 3 | Forward | | 4 | Righ

我有一个数据集,我正试图根据条件将其分块成“事件”。我想创建一个连续的组号(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循环(伪ish代码)来实现这一点:


我觉得这应该是一个非常简单的一行,但我的大脑现在已经崩溃了,我很难理解这一点。

GroupId=cumsum(动作%in%c(“左”、“右”))
好吧,见鬼。太快了。太快了,我不得不再等四分钟才接受这个答案!工作完美。
GroupID = 1
for row in data:
    if Action == "Left" OR Action == "Right":
        GroupID = GroupID + 1
    else:
        GroupID = GroupID