группировка по идентификатору, сдвинуть все строки на единицу вверх и оставить NA для последней строки

#r

#r

Вопрос:

У меня есть набор данных в длинном формате, организованный по четыре раза для каждого субъекта. При группировке по номеру темы я пытаюсь сдвинуть все строки вверх на 1, а затем оставить последнее наблюдение для каждого предмета с NA.

Я попробовал это, но он сдвинул его вниз на 1, а не вверх на 1.

 data_long_new <- data_long_new[, variable_lag:=c(NA, variable[-.N]), by=subject_id]
 

Любая помощь будет оценена.

Ответ №1:

глядя на тот факт, что вы используете data.table

 data_long[, next.variable:=shift(variable, type="lead"), by= subject_id]
 

кроме того, ваш код почти правильный:

 data_long_new[, variable_lead:=c(variable[-1],NA), by=subject_id]
 

Ответ №2:

Это сделало это.

 data_long_new <- data_long %>% group_by(subject_id) %>% mutate(next.variable = lead(variable, order_by=subject_id))