0
我需要创建2列:PRETARGET和TARGET基于几个条件。如何考虑R中的每个观察的以下和前一行R
要创建预目标,我的每一行数据(每个参与者PPT和审判TRIAL)我需要检查CURRENT_ID与列CanBePretarget一个0值相关联,而下面一行是CURRENT_ID + 1的值。如果这些条件得到满足,那么,我想有一个0值,如果他们不履行1.
一个创造价值TARGET,我的每一行数据(每个参与者PPT和审判TRIAL)我需要检查CURRENT_ID与列CanBeTarget一个0值相关联,并且以前的行的CURRENT_ID值 - 1。如果这些条件都满足的话,我想有一个0值,如果他们不履行1.
另外一个值,如果结果在预目标是1,那么目标下一行的值也应该是1.
我在以下示例中添加了所需的输出。
我想使用for循环和ifelse语句,但我不知道如何考虑每个观察的以下/前一行。
PPT TRIAL PREVIOUS_ID CURRENT_ID NEXT_ID CURRENT_INDEX CanBePretarget CanBeTarget PRETARGET TARGET
ppt01 11 2 3 4 3 0 0 0 1
ppt01 11 3 4 3 4 1 0 1 0
ppt01 11 4 5 6 8 0 0 1 1
ppt01 11 6 7 8 10 0 0 1 1
ppt01 11 7 10 11 18 0 1 0 1
ppt01 11 10 11 12 19 0 0 0 0
ppt01 11 11 12 14 20 1 0 1 0
ppt01 12 1 2 1 2 1 0 1 1
ppt01 12 2 3 4 5 0 0 1 1
ppt01 12 5 6 6 8 0 0 0 1
ppt01 12 6 7 7 10 0 0 0 0
ppt01 12 7 8 9 12 0 0 0 0
ppt01 12 8 9 9 13 0 0 0 0
ppt01 12 9 10 11 16 0 0 0 0
ppt01 12 10 11 11 17 0 0 0 0
ppt01 13 1 2 2 2 1 0 1 1
ppt01 13 3 3 3 10 0 0 1 1
ppt01 13 4 5 6 13 0 0 0 1
ppt01 13 5 6 7 14 0 0 1 0
ppt01 13 9 9 10 19 0 0 0 1
ppt01 13 9 10 10 20 0 0 0 0
ppt01 13 10 11 12 22 0 0 0 0
ppt01 13 11 12 12 23 0 0 1 0
ppt01 14 10 11 11 15 0 0 0 1
ppt01 14 11 12 12 17 0 0 1 0