【发布时间】:2018-08-04 02:09:12
【问题描述】:
我正在尝试从下面的 for 循环中编译我的变量(向量)s1、s2 和 sn。该循环创建 19 个 1000 列的矩阵和随机数的各种行(由循环创建)。然后使用函数 calc_sds_1、calc_sds_2 和 calc_sds_n 计算这些值(“samps”)(取矩阵每一列的标准偏差 (n, n-1, n-2))。
基本上我希望变量 s1、s2、sn 从循环的每次迭代中收集这些计算值,并将完整的向量(应该是 19000 个值)返回到全局环境。
calc_sds_1 <- function(x){
sds_1 <- vector("numeric", 1000)
for (i in 1:1000){
sds_1[i] = std_1(x[,i])
}
sds_1
}
calc_sds_2 <- function(x){
sds_2 <- vector("numeric", 1000)
for (i in 1:1000){
sds_2[i] = std_2(x[,i])
}
sds_2
}
calc_sds_n <- function(x){
sds_n <- vector("numeric", 1000)
for (i in 1:1000){
sds_n[i] = std_n(x[,i])
}
sds_n
}
s1 <- numeric()
s2 <- numeric()
sn <- numeric()
for (i in 2:20) {
samps <- replicate(1000, rnorm(i))
calc_sds_1(samps)
calc_sds_2(samps)
calc_sds_n(samps)
s1 <- s1 + sds_1
s2 <- s2 + sds_2
sn <- sn + sds_n
return(s1)
return(s2)
return(sn)
}
【问题讨论】:
-
您可能还想查看this 答案和链接讨论
标签: r