Как я могу вычислить разницу в последовательных строках для нескольких столбцов? - PullRequest
0 голосов
/ 14 января 2020

У меня есть df, состоящий из ежедневных возвратов для различных сроков погашения. Первый столбец состоит из дат, а следующие 12 - сроки погашения. Я хочу создать новый DF, который рассчитывает разницу в последовательных ежедневных ставках. Не уверен, с чего начать.

enter image description here

Ответы [ 2 ]

2 голосов
/ 14 января 2020

В будущем старайтесь воздерживаться от предоставления картинки и предоставить представ !

Вот один из способов получить то, что вы ищете:


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)
    )
2 голосов
/ 14 января 2020

С multiple столбцами, diff может применяться

rbind(0, diff(as.matrix(df[-1])))

Или мы можем использовать dplyr

library(dplyr)
df %>%
   mutate_at(vars(-Date), ~ . - lag(.))

Воспроизводимый пример

diff(as.matrix(head(mtcars)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...