我在 R 中有一个 for 循环,我想在其中存储每个计算的结果(对于循环的所有值)。在 for 循环中,调用了一个函数,此时输出存储在变量 r 中。但是,这在每个连续循环中都会被覆盖。如何通过函数存储每个循环的结果并在之后访问它?
谢谢,
例子
for (par1 in 1:n) {
var<-function(par1,par2)
c(var,par1)->var2
print(var2)
Run Code Online (Sandbox Code Playgroud)
所以 print 返回 var2 的每个实例,但在 var2 中只保存最后 n 的值..有没有办法获取数据数组或其他东西?
初始化一个空对象,然后通过索引分配值
a <- 0
for (i in 1:10) {
a[i] <- mean(rnorm(50))
}
print(a)
Run Code Online (Sandbox Code Playgroud)
编辑:
要包含具有两个输出变量的示例,在最基本的情况下,创建一个空矩阵,其列数对应于您的输出参数,行数与迭代次数相匹配。然后通过索引 for 循环中的行位置将输出保存在矩阵中:
n <- 10
mat <- matrix(ncol=2, nrow=n)
for (i in 1:n) {
var1 <- function_one(i,par1)
var2 <- function_two(i,par2)
mat[i,] <- c(var1,var2)
}
print(mat)
Run Code Online (Sandbox Code Playgroud)
迭代号i对应于mat对象中的行号。所以没有必要明确地跟踪它。
然而,这只是为了说明基础。一旦理解了上述内容,使用@eddi 给出的优雅解决方案会更有效率,尤其是在您处理许多输出变量的情况下。
| 归档时间: |
|
| 查看次数: |
34636 次 |
| 最近记录: |