R向量传递时松开一个分量

R向量传递时松开一个分量,r,R,W[1:2^N+1]没有为您的想法编制索引,因为它具有优先级。首先构造向量1:2^N,然后添加标量1(因此每个元素都增加一个),从而选择元素2到末尾。这可能是因为冒号运算符:优先于+。试着在你的W[1:(2^N+1)]@Andrie:d'oh,simulpost的结构中使用括号。在R中确认。我想知道为什么不使用R函数Recall?所以我想我必须按照安德烈说的那样写,W[1:(2^N+1)]。非常感谢您的所有答案,我现在就试试。正确,安德烈的解决方案将索引您想要的元素。对于您发布的特定案例,实际上

W[1:2^N+1]
没有为您的想法编制索引,因为它具有优先级。首先构造向量
1:2^N
,然后添加标量
1
(因此每个元素都增加一个),从而选择元素2到末尾。

这可能是因为冒号运算符
优先于
+
。试着在你的
W[1:(2^N+1)]
@Andrie:d'oh,simulpost的结构中使用括号。在R中确认。我想知道为什么不使用R函数
Recall
?所以我想我必须按照安德烈说的那样写,W[1:(2^N+1)]。非常感谢您的所有答案,我现在就试试。正确,安德烈的解决方案将索引您想要的元素。对于您发布的特定案例,实际上,只传递
W
也可以,因为
W
是用长度
2^N+1
定义的。
recursiveCall <- function(x, N)
{
    cat("length = ", length(x))
    cat("vector x = ", x[1:2^N], "\n")
    return (x)
}
PaulLevyBrownianMotion <- function(N)
{
    cat("Paul Levy construction for N = ", N, "\n")
    W = c(rnorm(2^N+1, 0, 1))
    cat("length = ", length(W))
    cat("Wstandard = ", W, "\n")
    W <- recursiveCall(W[1:2^N+1], N)
    return (W) 
}
> W = PaulLevyBrownianMotion(2)
Paul Levy construction for N =  2 
length =  5Wstandard =  0.08641454 1.616638 -0.8747996 0.6149899 0.2689501 
length =  4vector x =  1.616638 -0.8747996 0.6149899 0.2689501 
>