2012-06-19 2 views
2

Привет, извините, все еще учась здесь и медленно изучая аргументы кода.Что означает термин в функции?

Просто интересно, может кто-нибудь объяснить, что означает, что определенная часть функции:

x = sum(abs(apply(embed(y, 4), 1, prod))) 

Это действительно дает на бумаге следующее:

#sum(y|{j}|*y|{j-1}|*y|{j-2}|*|y{j-3}|) 

Мне интересно, что делает 1 делать? как я думаю, что (y, 4) означает у с у плюс 3 лаги и prod Я знаю, что это продукт

эта специфическая функция была написал для быть по Я пытаюсь изменить его равным:

#sum((|y{j}|^3/2)*(|y{j-1}|^3/2)*(|y{j-2}|^3/2)*(|y{j-3}|^3/2)) 

Поэтому в основном я интересно, должно моя модифицированная функция воскрешать значений у к^3/2 следует вычислить:

x = sum(abs(apply(embed((y^3/2), 4), 1, prod))) 

или:

x = sum(abs(apply(embed(y, 4), 3/2, prod))) 

или другой?

Любая помощь?

Спасибо заранее за ваш вклад

ответ

2

1 является частью apply функции аргумента называется MARGIN. Вот почему я выступаю за указание имен аргументов. В любом случае функция apply будет «петляться» по строкам (1) или столбцам (2) кадров данных, массивов, матриц ... Выражение или оцениваемый объект следует передать как X, или если вы предпочитаете свои функции голыми, первый аргумент , Если вы хотите поднять y на определенную сумму, вам придется сделать это, как вы показали в одной из строк: y^(3/2).

Другими словами, эта команда будет суммировать все элементы по строкам:

apply(X = my.object, MARGIN = 1, FUN = sum) 

или по столбцам:

apply(X = my.object, MARGIN = 2, FUN = sum)