У меня есть df, состоящий из ежедневных возвратов для различных сроков погашения. Первый столбец состоит из дат, а следующие 12 - сроки погашения. Я хочу создать новый DF, который рассчитывает разницу в последовательных ежедневных ставках. Не уверен, с чего начать.
В будущем старайтесь воздерживаться от предоставления картинки и предоставить представ !
Вот один из способов получить то, что вы ищете:
df <- data.frame( dates= c("2019-01-01", "2019-01-02", "2019-01-03"), original_numbers = c(1,2,3) ) df2 <- df %>% mutate( difference = original_numbers - lag(original_numbers) )
С multiple столбцами, diff может применяться
multiple
diff
rbind(0, diff(as.matrix(df[-1])))
Или мы можем использовать dplyr
dplyr
library(dplyr) df %>% mutate_at(vars(-Date), ~ . - lag(.))
Воспроизводимый пример
diff(as.matrix(head(mtcars)))