R中的标准偏差循环

时间:2015-04-23 05:01:10

标签: r for-loop

我想创建一个循环,该循环采用位置1到3的标准偏差" y"然后采取位置4到6等的标准偏差。

这是我到目前为止提出的代码,但是自从新的矢量"我"增加相同的值。

这是一个假设数据集。

x <-rep(1:10, each =3)

y <- rnorm(30, mean=4,sd=1)

data <- cbind(x,y)

sd.v = NULL
for (i in c(1,4,7,10)){
  sd.v[i] <- sd(y[c(i,i+1,i+2)])
}

我对创建循环更感兴趣,而不是使用applysapplytapply或其他内容。

1 个答案:

答案 0 :(得分:2)

如果你真的想要一个循环,这是一种方法:

set.seed(42)
y <- rnorm(30, mean=4,sd=1)

sd.y <- as.numeric()
for(i in 1:10){
  sd.y[i] <- sd(y[(1+(i-1)*3):(3+(i-1)*3)])
}
sd.y
# [1] 0.9681038 0.3783425 1.1031686 1.1799477 0.6867556 1.6987277 
# [7] 1.8859794 1.4993717 1.2956209 1.1116502