如何使函数中的某些参数采用多个数字并返回最小值

时间:2019-04-09 22:19:06

标签: r function apply sapply

我具有以下功能:

print(module_name.__path__)

D1是具有2只股票(微软和亚马逊)的回报的数据框 我需要一种方法来使w从0.01到1且wb为(1-wa) 并告诉我该wa和wb的组合值是最低的。

在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

考虑调整函数的返回值。然后,使用sapply在整个序列中迭代调用函数,以构建结果矩阵并过滤所需的最小值。

Double.Historical.Sim.Var <- function(d1, wa=0.75, wb=0.25, pv=1000, cl=0.95) {
   w <- c(wa, wb)
   Pw <- -pv*w
   loss <- rowSums(t(Pw * t(d1)))
   result <- quantile(loss,0.95)
   return(c(wa, wb, result))       # NEW RETURN
}

res_matrix <- sapply(seq(0.01, 1, by=0.01),
                     function(i) Double.Historical.Sim.Var(d1, wa=i, wb=(1-i))

res_matrix[which.min(res_matrix[3,]),]

答案 1 :(得分:0)

我想通过冻糕解决了这个问题,万一有人需要的答案如下

Spacing = 5

这可以使您权衡具有2个风险事实的组合的最小风险价值