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)y 加上 3 滞后意味着 yprod我知道是产品

这个特定的函数是由我试图将其修改为等于编写的:

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

所以基本上我想知道我的修改后的函数是否应该将 y 提高到 ^3/2 我应该计算:

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

或者:

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

或其他?

有什么帮助吗?

预先感谢您的意见

4

1 回答 1

2

1apply称为参数的函数的一部分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)
于 2012-06-19T20:14:58.220 回答