这是数据:
marker <- c(0,0,0,0,3,3,0,0,5,5,5,0,0,0,
1,1,2,2,2,2,0,0,1,1,1,3,3,3,
1,1,2,2,2,0,0,1,1,1,5,5,5,5)
这些标记显示参与者在眼动追踪研究期间正在做什么,例如 0 = 没有试验,1 = 试验开始,2、3、5 = 不同类型的任务。第一个1之前的数据是眼动仪测试,可以丢弃。
我需要做什么(最好是dplyr
):
- 删除第1条之前的数据
- 计算每个重复数字序列的长度(
n_samples
)
- 将 ID 号分配给试验,将 0 分配给无试验和试验开始(
trial_number
)
期望的输出:
marker n_samples trial_number
1 2 0
1 2 0
2 4 1
2 4 1
2 4 1
2 4 1
0 2 0
0 2 0
1 3 0
1 3 0
1 3 0
3 3 2
3 3 2
3 3 2
1 2 0
1 2 0
2 3 3
2 3 3
2 3 3
0 2 0
0 2 0
1 3 0
1 3 0
1 3 0
5 4 4
5 4 4
5 4 4
5 4 4
I found this https://stackoverflow.com/questions/7077710/sequence-length-encoding-using-r答案,但无法修改代码以适应我的任务。
谢谢你!