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

Скажем, к примеру, у меня есть следующий набор данных:

wage <- c(2100, 2100, 2500, 2400, 2300, 2200, 2700, 2300, 2900, 3000)
timestamp <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

example <- data.frame(wage, age)
example

Как я могу сделать еще один кадр данных, который показывает процентное изменение от начальной заработной платы, где я говорю, какая строка является начальной заработной платой. Например, я хочу начать со строки 3 и закончить строкой 9. Первое значение - это, конечно, изменение 0%, то есть заработная плата 2500, следующее значение будет (2400-2500) * 100/2400 = -4 %, следующее значение после этого будет (2300-2500) * 100/2300 = -8% и др. c. всего 7 рядов (ряд 3-9).

Так это должно выглядеть примерно так:

timestamp    wage%change
3            0
4            -4
5            -8
6            -12
7            8
8            -8
9            16

Спасибо!

1 Ответ

2 голосов
/ 16 апреля 2020

В одну сторону, используя dplyr:

library(dplyr)

start <- 3
end <- 9

example %>%
  slice(start:end) %>%
  mutate(wage_change = (wage - first(wage)) * 100/first(wage))

#  wage timestamp wage_change
#1 2500         3           0
#2 2400         4          -4
#3 2300         5          -8
#4 2200         6         -12
#5 2700         7           8
#6 2300         8          -8
#7 2900         9          16
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...