我对R还是很陌生,她试图计算鱼的移动数量,以便可以按月进行卡方检验。
每行是一条鱼,每列是一个月,如果在给定的月份中检测到鱼,则其值为检测到的位置,如果在该月中未检测到,则其值为0。在多个位置检测到该值,该值在当月检测到的顺序中同时包含两个位置。
Tag_ID Region.Init 2017-05-01 2017-06-01 2017-07-01 2017-08-01 2017-09-01
1 326000 Lower 0 Upper 0 0 Misc
2 326001 Lower 0 Lower, Misc Misc 0 0
3 326002 Lower 0 Lower 0 0 0
我想记录一下鱼到达新地点的几个月。发生的月份是放在新列中还是在数据中以某种方式注明,这都无关紧要。因此,我尝试做一个嵌套循环,在该循环中它遍历每一行,并且如果该列等于下一行,它将把第二个值更改为1,但是这改变了下一个循环,因为现在值不同了。我还遇到了R的问题,即当值更改为0(也未检测到)时,这是一个运动,这不是我想要的。我遇到的另一个问题是,当有多个地点(例如Lower,Misc)并且下个月是其中的第二个地点(其他)时,当鱼实际上停留在其他地点时,这两个地点之间的跳跃将被视为移动。 / p>
理想情况下,我希望数据集看起来像这样:
Tag_ID Region.Init 2017-05-01 2017-06-01 2017-07-01 2017-08-01 2017-09-01 Moves
1 326000 Lower 0 Upper 0 0 Misc 2017-06-01, 2017-09-01
2 326001 Lower 0 Lower, Misc Misc 0 0 2017-06-01
3 326002 Lower 0 Lower 0 0 0 NA