R 根据投资组合的权重查找参数值

R 根据投资组合的权重查找参数值,r,R,我试图找到一个参数的值,其中一个参数小于这个值的投资组合的所有成分加起来占整个投资组合的25% 当然,使用R 例如,我有一个市场指数的投资组合,包含100种成分股票。该投资组合的25%意味着总市值的25%。我想找到一个参数的值,比如市盈率,市盈率小于这个值的所有证券占这个投资组合市值的25% 我知道我可以使用“分位数”函数找到市盈率的25%值 Bottom_Quartile <- data[(data$PE < quantile(data$PE,0.25),] Bottom_Qua

我试图找到一个参数的值,其中一个参数小于这个值的投资组合的所有成分加起来占整个投资组合的25%

当然,使用R

例如,我有一个市场指数的投资组合,包含100种成分股票。该投资组合的25%意味着总市值的25%。我想找到一个参数的值,比如市盈率,市盈率小于这个值的所有证券占这个投资组合市值的25%

我知道我可以使用“分位数”函数找到市盈率的25%值

Bottom_Quartile <- data[(data$PE < quantile(data$PE,0.25),]

Bottom_Quartile您不需要市值的分位数,而是总市值的25%。
您可以使用
order
通过增加PE对股票进行排序,并使用
cumsum
进行计算 低于一定市盈率的股票总市值

i <- order(PE)
tail( which( cumsum(MCap[i]) < .25 * sum(MCap) ), 1 ) 

谢谢你的建议!这正是我所做的,但我想知道是否有一个更优雅和准确的方法来做到这一点。
i <- order(PE)
tail( which( cumsum(MCap[i]) < .25 * sum(MCap) ), 1 )