将输出对象存储到R中for循环的数据帧中

问题描述 投票:0回答:2

我想在R中为下面的等式编写一个脚本,并为每个相应的结果创建数据帧。

x<-c(1:5)
y<-c(1:5)
z<-4*(x+2*y)

我需要找到X和Y值的不同组合的每个结果,就像具有1到5的行/列列表的excel表格式一样。如何通过使用for循环函数来实现。非常感谢。

r loops for-loop
2个回答
2
投票

如果你用循环来做这件事,这里有一个循环方法来获得与outer相同的结果:

result_matrix <- matrix(NA, nrow=length(x), ncol=length(y))
for(i in seq(x)) {
for(j in seq(y)) {
    result_matrix[i,j] <- 4*(x[i] + 2*y[j])
}
}

4
投票

你不必使用循环,使用outer

> outer(x, y, FUN=function(x,y){4*(x+2*y)})
     [,1] [,2] [,3] [,4] [,5]
[1,]   12   20   28   36   44
[2,]   16   24   32   40   48
[3,]   20   28   36   44   52
[4,]   24   32   40   48   56
[5,]   28   36   44   52   60
© www.soinside.com 2019 - 2024. All rights reserved.