Мне нужно вычислить следующее уравнение в новом столбце в моем фрейме данных.
Относительный индекс смещения: | {(нетто-смещение l-нетто-смещение l + 1) / нетто-смещение l} * 100 |, где мне нужно вычислить абсолютное значение нетто-смещения между GPS-местоположением l и местоположением l +1. Полученное число будет представлять собой процентное значение.
Проблема, с которой я столкнулся, заключается в том, что я не могу найти простой способ добавить формулу выше, где я вычисляю относительное изменение амплитуды чистого смещения от строки 1 к строке 2, строки 2 к строке 3, строке 3в строку 4 и т. д. Я включил пример фрейма данных для вашей справки.Я также включил столбец во фрейм данных, который содержит желаемый результат.Данные имеют иерархическую структуру (местоположения GPS вложены в COLLAR_ID, DATETIME, MONTH, DAY, YEAR и HOUR.
dput(droplevels(head(example, 4)))
structure(list(COLLAR_ID = c(33827L, 33827L, 33827L, 33827L),
DATETIME = structure(1:4, .Label = c("10/1/2013 10:00", "10/1/2013 10:30",
"10/1/2013 17:00", "10/1/2013 17:30"), class = "factor"),
WEEK = c(1L, 1L, 1L, 1L), YEAR = c(2013L, 2013L, 2013L, 2013L
), MONTH = c(10L, 10L, 10L, 10L), DAY = c(1L, 1L, 1L, 1L),
HOUR = c(10L, 10L, 17L, 17L), X = c(384349L, 431753L, 242501L,
448158L), Y = c(8864608L, 8757741L, 7306632L, 1159880L),
MOVEMENT_DISTANCE = c(78.1, 99.82, 35.9, 3), NET_DISPLACEMENT = c(135.35,
205.65, 403.79, 434.83)), .Names = c("COLLAR_ID", "DATETIME","WEEK", "YEAR","MONTH","DAY", "HOUR", "X", "Y", "MOVEMENT_DISTANCE","NET_DISPLACEMENT"), row.names = c(NA, 4L), class = "data.frame")