2016-07-14 4 views
0

timeseriesデータを扱う場合、このエラーは何を意味しますか?それはNAを持ついくつかの列と関係がありますか?このSO postは他の人の問題を解決しますが、具体的には誰かがとのどちらの場合に最初のによって引き起こされたかどうかを説明するの長さを説明します。 formula="ADX.adx>25 & rsi<50".xtsインデックスの長さの誤差が観測数と一致する必要があります

> add.signal(strat, name="sigFormula", arguments=list(columns=c("ADX.adx","rsi"), 
+  formula="ADX.adx>25 && rsi<50"), label="enterLONG") 
[1] "tempEnv" 
> test <- applySignals(strat, mktdata=test) 

Error in .xts(eval(parse(text = formula), as.list(data)), index = .index(data)) : 
    index length must match number of observations 
Error in `colnames<-`(`*tmp*`, value = seq(ncol(tmp_val))) : 
    attempt to set 'colnames' on an object with less than two dimensions 

> View(test) 
> colnames(test) 
[1] "Open"     "High"     "Low"     "Close"    
[5] "Volume"    "rsi"     "tr.ATR.ind"   "atr.ATR.ind"   
[9] "trueHigh.ATR.ind"  "trueLow.ATR.ind"  "dn.bbInd"    "mavg.bbInd"   
[13] "up.bbInd"    "pctB.bbInd"   "DIp.adx"    "DIn.adx"    
[17] "DX.adx"    "ADX.adx"    "SMI.stoch.fastind" "signal.stoch.fastind" 

答えて

0

ソリューションは&&&にすなわちを変更することでした。

&と& &は論理示しAND:@Joshuaウルリッヒのおかげで、私はその理由を発見しました。より短い形式は、算術演算子とほとんど同じ方法で要素ごとの比較を実行します。長いフォームでは、各ベクトルの最初の要素のみを左から右に評価します。

+0

答えは '?base :: Logic'です。 –

関連する問題