Скажем, у меня есть такой фрейм данных:
data = structure(list(yaw = c(1, 1, 2, 3, 5), z = c(1, 2, 3, 4, 5),
x = c(1, 3, 2, 2, 3)), row.names = c(NA, 5L), class = "data.frame")
И я хочу выполнить вычисление между каждой строкой (наблюдением) и строкой перед ней, а затем сохранить ее как новый столбец в фрейме данных (или, возможно, сохранить как новый набор данных? Например:
newdata <- data %>%
mutate(Yaw = Row2Yaw - Row1Yaw) %>%
mutate(hypotenuse = sqrt((Row2X - Row1X)^2 + (Row2Z - Row1Z)^2) %>%
mutate(lane_deviation = sin(Yaw) * hypotenuse)
Следовательно, это дает мне значение lane_deviation для разницы между этими двумя строками. В идеале я хотел бы рассчитать это для каждого наблюдения (то есть Row3Yaw -Row2Yaw) и т.д ...)
Возможно ли это в dplyr или мне нужна какая-то форма цикла? Любая помощь приветствуется!