Как я могу конвертировать мои df цены в df доходности на основе 100 - PullRequest
0 голосов
/ 22 января 2020

Я хочу рассчитать возврат от моего фрейма данных и сгенерировать новый df, где мои значения основаны на 100.

Пример:

Date         Ubam US Corporate
18/02/2014   185.31
19/02/2014   185.17  
20/02/2014   185.06
Date         Ubam US Corporate
18/02/2014   100
19/02/2014   99.9992 <- 100+(1*((185.17/185.31)-1))
20/02/2014   99.9987

Это мой df

https://www.dropbox.com/transfer/AAAAAFv-jeRgpk4_DpH7R4eCajykisZs0_fuJL8FP08AAUZQxXxou90

Есть ли функция для автоматического расчета?

Спасибо

1 Ответ

0 голосов
/ 23 января 2020

Если df ваши данные:

df <- data.frame(Date=c('18/02/2014','19/02/2014','20/02/2014'), Ubam = c(185.31, 185.17, 185.06))

, вы можете сначала создать вектор изменения цены, со 100 в качестве первой записи:

price_changes <- c(100, tail(df[, 'Ubam'], -1) / head(df[, 'Ubam'], -1) - 1)

Затем вы можете сделать накопленная сумма для создания перебазированного индекса цен в виде нового столбца в df:

df$rebased_index <- cumsum(price_changes)
df
#output
    Date       Ubam rebased_index
1 18/02/2014 185.31     100.00000
2 19/02/2014 185.17      99.99924
3 20/02/2014 185.06      99.9986
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...