如何在R中创建月度价值加权回报

lg40wkob  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(120)

| 月份|返回|市值|
| - ------|- ------|- ------|
| 1个|0.02|一百|
| 1个|0.05|一百五十|
| 1个|0、11岁|一百二十|
| 1个|-0.03|三百|
| 第二章|0.06|二百四十|
| 第二章|-0.01|一百|
| 第二章|-0.03|一百三十|
| 第二章|0.05|一百一十|
你好,我有非常大的数据集的股票和他们的市值每月回报,问题是我如何才能得到价值加权回报的投资组合,包括所有股票在特定月份(基于市值的回报/每个月的所有市值 * 回报),例如,对于第1个月,我将得到100/(100+150+120+300)* 0,02 + 150/(100+150+120+300)* 0,05......等,直到那个月的最后一次观察,我发现的问题是,我有300多个月,5000只不同的股票,回报和市值都不一样。
最终输出:
第1个月的价值加权回报,第2个月的价值加权回报...第n个月的价值加权回报
不知道怎么做,对R或编程本身都很陌生

wfveoks0

wfveoks01#

像这样?

library(tidyverse)

df %>%
  group_by(Month) %>%
  summarise(
    vw_return = sum(Marketcap / sum(Marketcap) * Return)
  )

# A tibble: 2 × 2
  Month vw_return
  <dbl>     <dbl>
1     1    0.0204
2     2    0.111

数据

structure(list(Month = c(1, 1, 1, 1, 2, 2, 2, 2), Return = c(0.02, 
0.05, 0.11, -0.03, 0.06, -0.01, -0.03, 0.5), Marketcap = c(100, 
150, 120, 300, 240, 100, 130, 110)), row.names = c(NA, -8L), class = c("tbl_df", 
"tbl", "data.frame"))

相关问题