r - R中的错误消息:尝试在小于二维的对象上设置“colnames”
问题描述
当我没有对其施加太多限制时,我的代码就可以工作。但是,我想运行大量的约束。有没有办法帮助解决问题,或者解决这个错误。我正在尝试绘制一个有效的边界。谢谢。我在下面有数据时间序列的 dput。
library("fPortfolio")
library('fPortfolio')
data = SPISECTOR.RET
asset = dim(data)[2]
# I'm putting a lot of constraints here. I want to do this.
# If I take away some of the constraints, the formula works.
# But I don't want to take away the constraints.
constraints <- c('minW[1:asset]=0','maxW[1:asset]=0.3', 'minsumW[c("ACWI", "ACWX", "AGED", "CEMA", "CEMG", "CMXC", "CNYA", "COMF", "CSJP", "CSKR", "CSRU", "CSUK", "DGTL", "DLTM", "ECAR", "EEM", "EFA", "EIDO", "EIRL", "EMB", "ENOR", "EPHE", "EPOL", "EUSA", "GUNR", "HEAL", "ICDU", "ICSU", "IESU", "IGAA", "IH2O", "IHCU", "IHYA", "IIND", "IISU", "IITU", "IJS", "IJT", "IMSU", "INRG", "IQLT", "IUSU", "KWEB", "LAND", "LOCK", "MGK", "OPEN", "QQQ", "RBOT", "SAUS", "SPAG", "UIFS", "UNG", "USMV", "VB", "VNQ", "VNQI", "VTV", "VUG", "WOOD", "XFVT")]=0.01', 'maxsumW[c("ACWI", "ACWX", "AGED", "CEMA", "CEMG", "CMXC", "CNYA", "COMF", "CSJP", "CSKR", "CSRU", "CSUK", "DGTL", "DLTM", "ECAR", "EEM", "EFA", "EIDO", "EIRL", "EMB", "ENOR", "EPHE", "EPOL", "EUSA", "GUNR", "HEAL", "ICDU", "ICSU", "IESU", "IGAA", "IH2O", "IHCU", "IHYA", "IIND", "IISU", "IITU", "IJS", "IJT", "IMSU", "INRG", "IQLT", "IUSU", "KWEB", "LAND", "LOCK", "MGK", "OPEN", "QQQ", "RBOT", "SAUS", "SPAG", "UIFS", "UNG", "USMV", "VB", "VNQ", "VNQI", "VTV", "VUG", "WOOD", "XFVT")]=0.3', 'minsumW[c("BND", "CBON", "CRPA", "GLD", "SLV", "SPGP", "SWAN")]=0.01', 'maxsumW[c("BND", "CBON", "CRPA", "GLD", "SLV", "SPGP", "SWAN")]=0.3', 'minsumW[c("GLTL", "GLTS", "IBGE", "IBGY", "IBGZ", "IEF", "IGLT", "SEGA", "SHY", "TIP", "TLT", "VVUILG")]=0.01', 'maxsumW[c("GLTL", "GLTS", "IBGE", "IBGY", "IBGZ", "IEF", "IGLT", "SEGA", "SHY", "TIP", "TLT", "VVUILG")]=0.3')
spec <- portfolioSpec()
setNFrontierPoints(spec) <- 25
setSolver(spec)<- "solveRquadprog"
frontier <-portfolioFrontier(data, spec, constraints)
当我运行最后一行时,frontier <-portfolioFrontier(data, spec, constraints)
出现错误:
Error in `colnames<-`(`*tmp*`, value = names(getMu(Data))) :
attempt to set 'colnames' on an object with less than two dimensions
解决方案
好的,我得到它的工作。我没有将约束添加到一个,而是放入了其他库。现在一切都好。
推荐阅读
- c++ - 12小时到24小时时间转换
- javascript - 指定一个 React 组件作为另一个组件的 defaultProp
- multithreading - Rayon 会避免为少量工作生成线程吗?
- node.js - ng serve --proxy-config proxyconfig.json 不工作
- sql-server - INSERT 语句与 CHECK 约束冲突(插入表问题)
- django - 在 Django 中显示与登录用户相关的数据
- python - Python 日志记录:禁用堆栈跟踪
- ios - 如何解决xcode中的信号SIGABRT线程
- php - 减少在 WP 和 Woocommerce 中创建的图像数量的适当解决方案
- typescript - RxJS fromEventPattern with React Native events