Попытайтесь заметить, если значение в одном столбце равно значению в следующем столбце в строке - PullRequest
0 голосов
/ 26 марта 2019

Я довольно плохо знаком с 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 (он же не обнаружен), это движение, а не то, что я хочу. Другая проблема, с которой я столкнулся, заключалась в том, что когда было несколько мест (например, Нижняя, Разное), и следующий месяц был вторым из них (Разное), он считал скачок между ними как ход, когда рыба фактически оставалась в Разном.

В идеале, я хочу, чтобы набор данных выглядел примерно так:

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
...