尝试注意每一列中的值是否等于下一行中的值

时间:2019-03-26 18:43:18

标签: r loops nested-loops

我对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

0 个答案:

没有答案