Демонстрация R Blotter не работает под Linux

Я хочу запустить демонстрационную программу r blotter под Linux и получаю следующую ошибку при запуске demo (amzn_test)

> # update the portfolio stats
> updatePortf("amzn_port",Dates="2010-01-14")
Error in if (nzchar(intervals[1])) s <- as.POSIXlt(do.call(firstof, parse.side(intervals[1]))) : 
  argument is of length zero

Интересно, что с той же версией R в Windows все работает нормально. Я новичок в R и врезался в стену, пытаясь устранить неполадки. Я проверил sessioInfo в Linux и Windows, и они совпадали, за исключением локали, которая, как я полагаю, зависит от ОС.

В Linux:

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8   
 [6] LC_MESSAGES=en_US.UTF-8    LC_PAPER=C                 LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] lattice_0.20-6          blotter_0.8.10          FinancialInstrument_1.0 quantmod_0.3-17         TTR_0.21-1              Defaults_1.1-1         
[7] xts_0.8-6               zoo_1.7-7              

loaded via a namespace (and not attached):
[1] grid_2.15.1  tools_2.15.1

В Windows:

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-pc-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252  

person Generalenthu    schedule 25.08.2012    source источник
comment
буду патчить. В то же время он будет работать с версией 1131. Так что вы можете проверить эту версию, если вам не терпится.   -  person GSee    schedule 26.08.2012


Ответы (1)


Эта проблема была исправлена ​​в версии 1133. Код использовал функцию time для списка, а не для объекта xts, содержащегося в списке. Похоже, что это было проблемой какое-то время, но до вчерашнего изменения, чтобы явно использовать xts:::time.xts, отправлялся другой метод time, который успешно возвращал значения, отличные от предполагаемых, без ошибок. Спасибо за отчет.

Если вам нужна помощь в проверке, сборке и установке последней версии, см. эту публикацию.

person GSee    schedule 25.08.2012
comment
Спасибо за быстрый ответ. В последней версии первая демоверсия работает, а две другие по-прежнему не работают. Как и в первой демонстрации, они работают на Windows. ошибка, которую я получаю, это > # Create trades > for( i in 10:NROW(GSPC) ) { + # browser() + CurrentDate=time(GSPC)[i] + cat(".") + equity = getEndEq(ltaccount, C .... [TRUNCATED] . Error in inherits(TF, "try-error") : object 'TF' not found In addition: There were 14 warnings (use warnings() to see them) - person Generalenthu; 26.08.2012
comment
Работал отлично. Совершенно новый на SO, поэтому недостаточно представителей, чтобы проголосовать !! - person Generalenthu; 26.08.2012