2013-12-24 1 views
0

Я пытался использовать EEMD на определенных XTS объект данных и получили следующий ответ:Ensemble режим Эмпирические разложение

Error in `/.difftime`(diff(unphase, lag), diff(tt, lag)) : 
    second argument of/cannot be a "difftime" object 

Я пишу вам, потому что я понятия не не то, что может быть не так и есть искали ответы на www, но не смогли найти. Мой код, используя это

load("C:/Users/Domen/Desktop/SnP_close.Rdata") 
here <- EEMD(sig=as.numeric(Snp[,1]),tt=time(Snp[,1]),noise.amp=100,trials=100,nimf=6,trials.dir="trials") 

ответ

0

Это: Error in /.difftime (diff(unphase, lag), diff(tt, lag)) говорит вам, что функция «/» для класса «difftime» (так как S3 функция отправки определяется по первому аргументу), не может быть разделена по значению, которое также является «difftime». Меня иногда раздражало ограничения операций на объектах «difftime», я сам. Обычно я заканчиваю преобразование в числовое, как вы начали делать, но, вероятно, нужно идти немного дальше. Возможно:

here <- EEMD(sig=as.numeric(Snp[,1]), tt=as.numeric(time(Snp[,1])), 
       noise.amp=100,trials=100,nimf=6,trials.dir="trials") 

Без конкретного примера это всего лишь предположение. Переменная 'tt' в списке аргументов может быть тем же самым, что и аргумент, порождающий ошибку. (Или это может быть не так. Это зависит от того, как функции определяют свои переменные внутри.) Похоже, вы используете не только пакет «xts», но и другой пакет с функцией time, а также неназванный пакет с EEMD. Вы должны указать весь пакет и указать конкретный объект данных с dput.

+0

Чрезвычайно важно, что вы так много;) и веселое рождество! – user3133049