【问题标题】:How can I convert my df of prices into a df of returns on 100 based如何将我的价格 df 转换为基于 100 的回报 df
【发布时间】:2023-03-23 16:55:01
【问题描述】:

我想从我的数据框计算回报并生成一个新的 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

有没有自动计算的函数?

谢谢

【问题讨论】:

  • Python,是熊猫吗?
  • 我正在使用 Rstudio
  • 知道了,那么请记住,每当您在 so 上发布问题时 - 始终在您的标签中注明它所关注的技术。这是第一个标签,你应该放 ;)

标签: r price performanceanalytics


【解决方案1】:

如果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

【讨论】:

  • 嗨,我的 df 是从 18/02/2014 到 15/01/2020 的 n 行 n 列的 df。我所做的是: VLPFI.rent
猜你喜欢
  • 1970-01-01
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多