我想在R中为下面的等式编写一个脚本,并为每个相应的结果创建数据帧。
x<-c(1:5)
y<-c(1:5)
z<-4*(x+2*y)
我需要找到X和Y值的不同组合的每个结果,就像具有1到5的行/列列表的excel表格式一样。如何通过使用for循环函数来实现。非常感谢。
如果你用循环来做这件事,这里有一个循环方法来获得与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])
}
}
你不必使用循环,使用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