Я пытаюсь вычислить абсолютную разницу между запаздывающими значениями по нескольким столбцам. Первая строка результирующего набора данных - это NA, что верно, поскольку нет предыдущего значения для вычисления задержки. Я не понимаю, почему задержка не рассчитывается для последнего значения. Обратите внимание, что последнее значение в приведенном ниже примере (temp) - это задержка между 2-м и последним и 3-м последним значениями, значение задержки между последним и 2-м и последним значениями отсутствует.
library(tidyverse)
library(purrr)
dim(mtcars) # 32 rows
temp <- map_df(mtcars, ~ abs(diff(lag(.x))))
names(temp) <- paste(names(temp), '.abs.diff.lag', sep= '')
dim(temp) # 31 rows
Было бы отличным бонусом, если бы кто-нибудь мог показать мне, как выполнить этап переименования, я поигрался с paste и enquo. Реальный набор данных слишком длинный для использования метода сбора / нового имени столбца / распространения.
Заранее спасибо!
РЕДАКТИРОВАТЬ: библиотеки должны запускать добавленный скрипт
lag
иdiff
вместе, вероятно, не дает того, что вы думаете.lag(x, lag=1)
возвращает x [n-1],diff(x)
возвращаетx[n] - x[n-1]
. - person Mako212   schedule 02.10.2017