У меня есть большой набор экологических данных, который включает идентификаторы развертывания, которые необходимо исправить.
Фотоловушки были развернуты в течение десятилетнего периода, и расположение фотоловушек записано как идентификатор развертывания. Однако фотоловушки могли быть установлены в одном и том же месте дважды в разное время. В этом случае идентификатор развертывания был записан как один и тот же, но он должен быть уникальным.
И для пояснения: только одна камера-ловушка может быть развернута в одном месте за раз. Но за десять лет в некоторых местах было несколько фотоловушек.
Итак, моя цель - сделать их уникальными идентификаторами развертывания.
Моя попытка: я знаю, что ловушки для камеры не устанавливались дольше 3 месяцев. Итак, используя DateTime, если прошло более 100 дней, я могу предположить, что это повторное развертывание, и я хочу назначить ему уникальный идентификатор развертывания. Итак, я создал столбец с DateDiff
for (i in 2:nrow(data)){
if (data$deploymentID[i] == data$deploymentID[i-1]){
data$DateDiff[i] <- as.Date(data$DateTime[i], format = '%Y%m%d') - as.Date(data$DateTime[i-1], format = '%Y%m%d')
}
}
Затем я подумал, что если я закажу данные сначала по идентификатору развертывания, а затем по DateTime ...
data[order(data$deploymentID, data$DateTime), ]
, я буду возможность использовать al oop, который проходит через фрейм данных, и если DateDiff> 100, все следующие строки, где идентификатор развертывания одинаковый, создают уникальный идентификатор развертывания.
Однако я изо всех сил пытаюсь создать рабочий l oop за этот последний раздел!
![I've attached a picture to show the structure of my data](https://i.stack.imgur.com/7ufjB.png)
Большое спасибо