Error in if (STATUS != 0) { : argument is of length zero

Wie erweitere ich R um eigene Funktionen oder Pakete? Welches Paket ist passend für meine Fragestellung?

Moderatoren: EDi, jogo

Antworten
Kalypso

Error in if (STATUS != 0) { : argument is of length zero

Beitrag von Kalypso »

Ich muss erst mal das Problem beschreiben, wann es und unter welchen Umständen das auftritt. Grundsätzlich programiere ich ja nichts (also keine Schleifen etc.) sondern verwende aus vorhandenen Paketen vorhandene Funktionen! Wenn ich einen Datensatz mit 265 Spalten hochlade und diesen mit der Funktion berechnen lasse tritt dies z. B. auf. Es verschwindet wenn ich von dem Datensatz die letzten 5 Spalten ODER die ersten 5 Spalten weglasse - was ansich paradox ist (aber damit kann ich einen Fehler in den Daten auch ausschließen). In beiden Fällen funktioniert es dann! Die Berechnung klappt auch mit 500 Spalten. Aber mich fuchst diese blöde Fehlermeldung. Wie kann ich meinen Datensatz überprüfen und zu gleich "heilen"?

Code: Alles auswählen

> managerData <- 100 * manager.RET
> 
> scenarios <- dim(manager.RET)[1]
> assets <- dim(manager.RET)[2]
> scenarios
[1] 267
> assets
[1] 261
> 
> tgSpec <- portfolioSpec()
> setRiskFreeRate(tgSpec) <- 0
> getRiskFreeRate(tgSpec)
[1] 0
> 
> tgPortfolio <- tangencyPortfolio(
+ data = managerData,
+ spec = tgSpec,
+ constraints = c('minW[1:assets]=0', 'maxW[1:assets]=0.0350'))
[b]Error in if (STATUS != 0) { : argument is of length zero[/b]
> print(tgPortfolio)
Error in print(tgPortfolio) : object 'tgPortfolio' not found
Also mit 260 Werten (egal ob von recht oder links) funktioniert es...
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Error in if (STATUS != 0) { : argument is of length zero

Beitrag von jogo »

Hallo Alex,

kannst Du bitte auch noch den Fall zeigen, bei dem es keine Fehlermeldung gibt? (also mit verringerter Spaltenanzahl)
Eventuell führt Multikollinearität zu dem Fehler (nur so eine Mutmaßung von mir).

Gruß, Jörg
Kalypso

Re: Error in if (STATUS != 0) { : argument is of length zero

Beitrag von Kalypso »

so würde das normalerweise aussehen:

Code: Alles auswählen

install.packages(c("cluster","mvoutlier","pastecs","fPortfolio"), repos = "http://cran.r-project.org")
> manager.RET@format
[1] "%Y-%m-%d"
> manager.RET@FinCenter
[1] "GMT"
> c(start(manager.RET), end(manager.RET))
GMT
[1] [2016-12-01] [2017-12-08]
> manager.RET@documentation
[1] "Fri Dec 15 23:16:52 2017"
> dim(manager.RET)
[1] 267 260

> colnames(manager.RET)
> managerData <- 100 * manager.RET
> scenarios <- dim(manager.RET)[1]
> assets <- dim(manager.RET)[2]
> scenarios
[1] 267
> assets
[1] 260
> 
> tgSpec <- portfolioSpec()
> setRiskFreeRate(tgSpec) <- 0
> getRiskFreeRate(tgSpec)
[1] 0
> 
> tgPortfolio <- tangencyPortfolio(
+ data = managerData,
+ spec = tgSpec,
+ constraints = c('minW[1:assets]=0', 'maxW[1:assets]=0.0350'))
> print(tgPortfolio)
Title:
 MV Tangency Portfolio 
 Estimator:         covEstimator 
 Solver:            solveRquadprog 
 Optimize:          minRisk 
 Constraints:       minW maxW 

Portfolio Weights:
DE0005501357 DE0005408116 DE000A1EWWW0 DE0005103006 NL0000235190 DE000A0WMPJ6 DE0008404005 
      0.0350       0.0000       0.0000       0.0000       0.0000       0.0058       0.0000 
DE000A0LD2U1 DE0006766504 DE000BASF111 DE0005190003 DE000BAY0017 DE0005158703 DE0005200000 
      0.0262       0.0000       0.0000       0.0000       0.0000       0.0208       0.0000 
DE000A1DAHH0 DE0005419105 DE0005313704 DE0007257503 DE000CBK1001 DE0005437305 DE0005439004 
      0.0000       0.0000       0.0000       0.0000       0.0333       0.0307       0.0000 
DE0006062144 DE0005470306 DE0007100000 DE0005140008 DE0005810055 DE0007480204 DE0005552004 
      0.0000       0.0074       0.0000       0.0000       0.0000       0.0000       0.0000 
DE000A0HN5C6 GB0059822006 DE0005550636 DE0005545503 DE0008019001 DE0005557508 DE0005565204 
      0.0350       0.0000       0.0000       0.0312       0.0000       0.0000       0.0000 
DE000ENAG999 DE000EVNK013 DE0005664809 DE0005772206 DE0005773303 DE000A0Z2ZZ5 DE0005785802 
      0.0018       0.0000       0.0108       0.0189       0.0350       0.0000       0.0000 
DE0005785604 DE0005790430 DE0006602006 DE000A0LD6E6 DE0005800601 LU0775917882 DE0008402215 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0111       0.0000 
DE0006047004 DE000A13SX22 DE0006048432 DE0006070006 DE000A1PHFF7 DE0006231004 DE000A2AADD2 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
DE0006229107 DE0006219934 DE000KSAG888 DE000KGX8881 DE0006335003 DE0005470405 DE000LEG1110 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
DE0005408884 DE0008232125 DE000A1X3W00 DE0006599905 DE0006632003 DE000A0D9PT0 DE0008430026 
      0.0000       0.0350       0.0000       0.0000       0.0000       0.0000       0.0000 
DE0006452907 DE000A0D6554 DE000A1H8BV3 DE000LED4000 DE0006916604 DE000PSM7770 NL0012169213 
      0.0000       0.0000       0.0000       0.0000       0.0350       0.0000       0.0000 
DE0007030009 DE000A0Z2XN6 LU0061462528 DE0007037129 AT0000A0E9W5 DE0006202005 DE0007164600 
      0.0000       0.0000       0.0000       0.0093       0.0000       0.0000       0.0000 
DE0007165631 DE000SHA0159 DE0007236101 DE000WAF3001 DE000A111338 DE000A0DJ6J9 DE000A2GS401 
      0.0000       0.0000       0.0000       0.0181       0.0000       0.0000       0.0000 
DE0007251803 NL0011375019 DE0007493991 DE0007297004 DE000SYM9999 DE0008303504 DE000TLX1005 
      0.0350       0.0000       0.0094       0.0000       0.0000       0.0350       0.0000 
DE000A1J5RX9 DE0007500001 DE000UNSE018 DE0005089031 DE0007664039 DE000A1ML7J1 DE000WCH8881 
      0.0000       0.0000       0.0350       0.0000       0.0000       0.0350       0.0081 
DE0007472060 DE000XNG8888 DE000ZAL1111 US88579Y1010 US0028241000 US00287Y1091 IE00B4BNMY34 
      0.0350       0.0000       0.0000       0.0000       0.0091       0.0350       0.0000 
IE00BY9D5467 US0200021014 US02079K3059 US02079K1079 US02209S1033 US0231351067 US0258161092 
      0.0000       0.0350       0.0000       0.0000       0.0000       0.0000       0.0000 
US0268747849 US0311621009 US0378331005 US00206R1023 US0605051046 US0640581007 US0846707026 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US09062X1037 US09247X1019 US0970231058 US1101221083 US14040H1059 US1491231015 US1510201049 
      0.0000       0.0000       0.0300       0.0000       0.0000       0.0000       0.0000 
US16119P1084 US1667641005 US17275R1023 US1729674242 US1912161007 US1941621039 US20030N1019 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US20825C1045 US22160K1051 US1266501006 US2358511028 US26078J1007 US26441C2044 US5324571083 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0350       0.0000 
US2910111044 US30161N1019 US30231G1022 US30303M1027 US31428X1063 US3453708600 US3695501086 
      0.0000       0.0277       0.0000       0.0000       0.0000       0.0000       0.0000 
US3696041033 US37045V1008 US3755581036 US38141G1040 US4062161017 US4370761029 US4385161066 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US4581401001 US4592001014 US4781601046 US46625H1005 US49456B1017 US5398301094 US5486611073 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US57636Q1040 US5801351017 IE00BTN1Y115 US58933Y1055 US59156R1086 US5949181045 US6092071058 
      0.0000       0.0076       0.0000       0.0000       0.0000       0.0000       0.0000 
US61166W1018 US6174464486 US65339F1012 US6541061031 US6745991058 US68389X1054 US70450Y1038 
      0.0000       0.0000       0.0350       0.0000       0.0000       0.0000       0.0288 
US7134481081 US7170811035 US7181721090 US7427181091 US7475251036 US7551115071 AN8068571086 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0029       0.0000 
US8288061091 US8425871071 US8552441094 US87612E1064 US8825081040 US5007541064 US7415034039 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US8873173038 US90130A2006 US90130A1016 US9029733048 US9078181081 US91324P1021 US9113121068 
      0.0000       0.0000       0.0219       0.0000       0.0000       0.0000       0.0000 
US9130171096 US92343V1044 US92826C8394 US9314271084 US9311421039 US2546871060 US9497461015 
      0.0000       0.0000       0.0000       0.0000       0.0192       0.0000       0.0000 
EU0009658152 FR0000120321 FR0000125486 ES0113211835 NL0010273215 ES0113900J37 NL0000009538 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
ES0178430E18 FR0000120271 FR0000120073 FR0000120628 FR0000131104 FR0000120644 FR0000125007 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
FR0000121667 FR0000127771 FR0000121014 FR0000073272 NL0011794037 NL0000009355 ES0144580Y14 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
NL0011821202 ES0148396007 IT0000072618 IT0003132476 FR0010208488 FR0000133308 BE0974293251 
      0.0000       0.0000       0.0230       0.0000       0.0000       0.0000       0.0000 
FR0000120578 FR0000130809 IT0003128367 FI0009000681 FR0000121972 IE0001827041 FR0000124711 
      0.0000       0.0000       0.0350       0.0000       0.0000       0.0000       0.0000 
CH0012221716 CH0012138605 CH0012138530 CH0030170408 CH0010645932 CH0102484968 CH0012214059 
      0.0000       0.0000       0.0000       0.0000       0.0268       0.0000       0.0000 
CH0013841017 CH0038863350 CH0012005267 CH0210483332 CH0012032048 CH0002497458 CH0000587979 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0350 
CH0012255151 
      0.0000 

Covariance Risk Budgets:
DE0005501357 DE0005408116 DE000A1EWWW0 DE0005103006 NL0000235190 DE000A0WMPJ6 DE0008404005 
      0.0398       0.0000       0.0000       0.0000       0.0000       0.0158       0.0000 
DE000A0LD2U1 DE0006766504 DE000BASF111 DE0005190003 DE000BAY0017 DE0005158703 DE0005200000 
      0.0162       0.0000       0.0000       0.0000       0.0000       0.0258       0.0000 
DE000A1DAHH0 DE0005419105 DE0005313704 DE0007257503 DE000CBK1001 DE0005437305 DE0005439004 
      0.0000       0.0000       0.0000       0.0000       0.0496       0.0332       0.0000 
DE0006062144 DE0005470306 DE0007100000 DE0005140008 DE0005810055 DE0007480204 DE0005552004 
      0.0000       0.0069       0.0000       0.0000       0.0000       0.0000       0.0000 
DE000A0HN5C6 GB0059822006 DE0005550636 DE0005545503 DE0008019001 DE0005557508 DE0005565204 
      0.0270       0.0000       0.0000       0.0478       0.0000       0.0000       0.0000 
DE000ENAG999 DE000EVNK013 DE0005664809 DE0005772206 DE0005773303 DE000A0Z2ZZ5 DE0005785802 
      0.0022       0.0000       0.0214       0.0126       0.0306       0.0000       0.0000 
DE0005785604 DE0005790430 DE0006602006 DE000A0LD6E6 DE0005800601 LU0775917882 DE0008402215 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0077       0.0000 
DE0006047004 DE000A13SX22 DE0006048432 DE0006070006 DE000A1PHFF7 DE0006231004 DE000A2AADD2 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
DE0006229107 DE0006219934 DE000KSAG888 DE000KGX8881 DE0006335003 DE0005470405 DE000LEG1110 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
DE0005408884 DE0008232125 DE000A1X3W00 DE0006599905 DE0006632003 DE000A0D9PT0 DE0008430026 
      0.0000       0.0572       0.0000       0.0000       0.0000       0.0000       0.0000 
DE0006452907 DE000A0D6554 DE000A1H8BV3 DE000LED4000 DE0006916604 DE000PSM7770 NL0012169213 
      0.0000       0.0000       0.0000       0.0000       0.0439       0.0000       0.0000 
DE0007030009 DE000A0Z2XN6 LU0061462528 DE0007037129 AT0000A0E9W5 DE0006202005 DE0007164600 
      0.0000       0.0000       0.0000       0.0126       0.0000       0.0000       0.0000 
DE0007165631 DE000SHA0159 DE0007236101 DE000WAF3001 DE000A111338 DE000A0DJ6J9 DE000A2GS401 
      0.0000       0.0000       0.0000       0.0489       0.0000       0.0000       0.0000 
DE0007251803 NL0011375019 DE0007493991 DE0007297004 DE000SYM9999 DE0008303504 DE000TLX1005 
      0.0281       0.0000       0.0143       0.0000       0.0000       0.0214       0.0000 
DE000A1J5RX9 DE0007500001 DE000UNSE018 DE0005089031 DE0007664039 DE000A1ML7J1 DE000WCH8881 
      0.0000       0.0000       0.0403       0.0000       0.0000       0.0301       0.0106 
DE0007472060 DE000XNG8888 DE000ZAL1111 US88579Y1010 US0028241000 US00287Y1091 IE00B4BNMY34 
      0.0589       0.0000       0.0000       0.0000       0.0067       0.0361       0.0000 
IE00BY9D5467 US0200021014 US02079K3059 US02079K1079 US02209S1033 US0231351067 US0258161092 
      0.0000       0.0233       0.0000       0.0000       0.0000       0.0000       0.0000 
US0268747849 US0311621009 US0378331005 US00206R1023 US0605051046 US0640581007 US0846707026 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US09062X1037 US09247X1019 US0970231058 US1101221083 US14040H1059 US1491231015 US1510201049 
      0.0000       0.0000       0.0378       0.0000       0.0000       0.0000       0.0000 
US16119P1084 US1667641005 US17275R1023 US1729674242 US1912161007 US1941621039 US20030N1019 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US20825C1045 US22160K1051 US1266501006 US2358511028 US26078J1007 US26441C2044 US5324571083 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0100       0.0000 
US2910111044 US30161N1019 US30231G1022 US30303M1027 US31428X1063 US3453708600 US3695501086 
      0.0000       0.0126       0.0000       0.0000       0.0000       0.0000       0.0000 
US3696041033 US37045V1008 US3755581036 US38141G1040 US4062161017 US4370761029 US4385161066 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US4581401001 US4592001014 US4781601046 US46625H1005 US49456B1017 US5398301094 US5486611073 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US57636Q1040 US5801351017 IE00BTN1Y115 US58933Y1055 US59156R1086 US5949181045 US6092071058 
      0.0000       0.0058       0.0000       0.0000       0.0000       0.0000       0.0000 
US61166W1018 US6174464486 US65339F1012 US6541061031 US6745991058 US68389X1054 US70450Y1038 
      0.0000       0.0000       0.0131       0.0000       0.0000       0.0000       0.0375 
US7134481081 US7170811035 US7181721090 US7427181091 US7475251036 US7551115071 AN8068571086 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0014       0.0000 
US8288061091 US8425871071 US8552441094 US87612E1064 US8825081040 US5007541064 US7415034039 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
US8873173038 US90130A2006 US90130A1016 US9029733048 US9078181081 US91324P1021 US9113121068 
      0.0000       0.0000       0.0073       0.0000       0.0000       0.0000       0.0000 
US9130171096 US92343V1044 US92826C8394 US9314271084 US9311421039 US2546871060 US9497461015 
      0.0000       0.0000       0.0000       0.0000       0.0128       0.0000       0.0000 
EU0009658152 FR0000120321 FR0000125486 ES0113211835 NL0010273215 ES0113900J37 NL0000009538 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
ES0178430E18 FR0000120271 FR0000120073 FR0000120628 FR0000131104 FR0000120644 FR0000125007 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
FR0000121667 FR0000127771 FR0000121014 FR0000073272 NL0011794037 NL0000009355 ES0144580Y14 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0000 
NL0011821202 ES0148396007 IT0000072618 IT0003132476 FR0010208488 FR0000133308 BE0974293251 
      0.0000       0.0000       0.0245       0.0000       0.0000       0.0000       0.0000 
FR0000120578 FR0000130809 IT0003128367 FI0009000681 FR0000121972 IE0001827041 FR0000124711 
      0.0000       0.0000       0.0346       0.0000       0.0000       0.0000       0.0000 
CH0012221716 CH0012138605 CH0012138530 CH0030170408 CH0010645932 CH0102484968 CH0012214059 
      0.0000       0.0000       0.0000       0.0000       0.0133       0.0000       0.0000 
CH0013841017 CH0038863350 CH0012005267 CH0210483332 CH0012032048 CH0002497458 CH0000587979 
      0.0000       0.0000       0.0000       0.0000       0.0000       0.0000       0.0202 
CH0012255151 
      0.0000 

Target Returns and Risks:
  mean    Cov   CVaR    VaR 
0.1829 0.4433 0.8269 0.6271 

Description:
 Fri Dec 15 23:21:05 2017 by user: Alexander 
> 

Es könnte allerdings auch sein, dass ich mich nach der Suche eines anderen Solvers machen muss...
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Error in if (STATUS != 0) { : argument is of length zero

Beitrag von jogo »

Hallo Alex,

in beiden Fällen handelt es sich also um ein Objekt mit dem Namen manager.RET einmal mit ein 260 Spalten und im anderen Fall 261.
Leider kann ich anhand der gelieferten Informationen nicht nachvollziehen, auf welche beiden verschiedenen Art und Weisen diese beiden Objekte entstanden sind.
Lässt sich das Objekt mit den 260 Spalten aus dem mit den 261 Spalten konstruieren? Oder muss dieses Objekt (aus welcher Quelle auch immer) jeweils neu erstellt werden?

Besonders verwirrt mich, dass Du in Deiner ersten Nachricht von 265 Spalten schreibst ...

Gruß, Jörg
Kalypso

Re: Error in if (STATUS != 0) { : argument is of length zero

Beitrag von Kalypso »

Hallo jogo,

sorry, die Feiertage... , wünsche noch ein gutes neues Jahr!
die Ursprüngliche Tabelle hatte 265 Spalten, davon habe ich gesprochen. Von dieser habe ich solange Spalten (von links dann von rechts) Spalten gelöscht um den Fehler zu finden....
Meiner Meinung nach hängt es an dem Solver
> getSolver(tgPortfolio)
[1] "solveRquadprog"

Values:
"solveRquadprog" Rmetrics default QP solver
"solveRglpk" Rmetrics default LP solver
"solveRshortExact" analytical short selling QP solver
"solveRipop" alternative QP solver
"solveRlpSolveAPI" alternative LP solver
"solveRsymphony" alternative LP solver
"solveRsocp" QP solver for quadratic constraints
"solveRdonlp2" NL solver for non-linear constraints

868 KB kann ich leider nicht hochladen...
Antworten