首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:不正确的尺寸数

错误:不正确的尺寸数
EN

Stack Overflow用户
提问于 2016-11-25 14:54:39
回答 1查看 3.6K关注 0票数 0

我试图对股票投资组合进行分析,利用短期权重。

要做到这一点,我必须创建一个循环,将我的“正常”返回到相反的符号(+/-),只要相应的权重是“短”(负号)。

矩阵mat_weights包含34个不同投资组合的优化曲线,每个投资组合包含越来越多的股票,这些股票的数量取决于优化过程("Markovitz"):

  • 第一个投资组合:4只股票
  • 第二个投资组合:5只股票
  • 第三个投资组合:6只股票
  • .
  • 第34次组合:34只股票

矩阵mat_returns_adjusted是一个包含循环结果的矩阵,如果相关系数为负值,则该矩阵应是对应于每只股票变化的符号的回报。因此,在最后,我应该能够得到一个1040(行)x34(列)矩阵填充“调整”返回。

矩阵mat_returns_raw包含链接到另一个名为nomi的矩阵的股票回报,该矩阵将正确的股票回报与相应股票的名称连接起来。

这是上面讨论的for循环:

代码语言:javascript
运行
复制
for(i in 1:34) {
mat_weights_short <- (mat_weights[i,1:i+3])
mat_returns_adjusted <- matrix (NA,1040,i+3)
mat_returns_raw <- returns[,nomi[i,1:i+3]]
if(mat_weights_short[i]<0) {
mat_returns_adjusted[,i]<- -(mat_returns_raw[,i])
} else {
mat_returns_adjusted[,i]<- mat_returns_raw[,i]
}}

当我将它输入R控制台时,我会收到一条错误消息:

代码语言:javascript
运行
复制
Error in mat_returns_raw[, i] : incorrect number of dimensions

我试图解决这个问题,但到目前为止我还没能解决它。如果问题不那么清楚,我会提前道歉,但这是我第一次不得不使用R。任何帮助都会被极大地接受!

EN

回答 1

Stack Overflow用户

发布于 2016-11-25 15:31:43

最有可能的问题是mat_returns_raw不是正确的对象/大小。试着让这个问题变得更明显。

代码语言:javascript
运行
复制
for(i in 1:34) {
    mat_weights_short <- (mat_weights[i,1:i+3])
    mat_returns_adjusted <- matrix (NA,1040,i+3)
    mat_returns_raw <- returns[,nomi[i,1:i+3]]

    ## print updates
    print(paste0("You're trying to pull column ", i " out of a ", class(mat_returns_raw), " which has ", ncol(mat_returns_raw), " columns"))
    flush.console()

    if(mat_weights_short[i]<0) {
        mat_returns_adjusted[,i]<- -(mat_returns_raw[,i])
    } else {
        mat_returns_adjusted[,i]<- mat_returns_raw[,i]
    }
}

此外,我建议运行for循环,在控制台中键入i以查找错误发生在哪个迭代中,然后在for循环中逐行运行代码,手动确定问题所在,经常使用dim()class()之类的东西查找您不希望看到的内容。祝好运

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40807626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档