R:如何将变量用于向量索引?

时间:2014-10-02 08:52:31

标签: r variables indexing

我是R的新用户,并尝试生成具有正弦函数的k-移动平均图,其中涉及随机数(范围[-0.5,+ 0.5])噪声。 所以我要做的是计算噪声正弦向量中连续(2 * k + 1)个元素的平均值,但是,使用" HELP"下面,它没有像我预期的那样...... :( 代码似乎计算1到(i-k)元素的平均值。 它有什么问题?求救!

set.seed(1)

x = seq(0,2*pi,pi/50)
sin_graph <- sin(x)
noise <- runif(101, -0.5, 0.5)
sin_noise <- sin_graph + noise

plot(x,sin_noise, ylim=c(-2,2))
lines(x,sin_graph, col="red")

k<-1
MA<-0

while (k<=1){
  i <- k+1
  MA_vector <- rep(NA, times=101)
  while (i<=101-k){
    MA_vector[i] <- mean(sin_noise[i-k:i+k]) #HELP!
    i <- i+1
  }
  print(MA_vector)
  plot(x, MA_vector, ylim=c(-2,2))
  lines(x,sin_graph, col="red")
  k<-k+1
}

1 个答案:

答案 0 :(得分:1)

目前,它从k:i减去i的向量,然后添加k:优先于数学运算符。通过使用括号(参见下面的代码),它评估i-ki+k并创建一个带有min和max的向量作为评估结果。我得到另一个平滑的功能。

MA_vector[i] <- mean(sin_noise[(i-k):(i+k)])