【发布时间】:2023-03-29 20:30:01
【问题描述】:
我想创建一个循环,取“y”中位置 1 到 3 的标准差,然后取位置 4 到 6 等的标准差。
这是我到目前为止想出的代码,但由于新向量“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)])
}
我真的对创建循环更感兴趣,而不是使用 apply、sapply、tapply 或其他东西。
【问题讨论】:
-
sapply(seq(1,10,3), function(u) sd(y[u:(u+2)]))有什么问题?