2015-04-23 92 views
0

我想創建一個循環,在「Y」所採用的通過3個位置1的標準偏差,然後通過6等需要位置4的標準偏差標準偏差環路

這是我的代碼我想出了迄今爲止,但是自從新矢量「i」增加了相同的值之後我就陷入了困境。

這是一個假設的數據集。

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

這有什麼錯'sapply(SEQ(1,10,3),功能(U)SD(Y [U:(U + 2)]))'? –

+0

什麼都沒有........ – ComputerNoob

回答

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 
+0

謝謝。非常酷 – ComputerNoob

+0

比我在腦海中製作要容易得多。 – ComputerNoob