R:Save 将嵌套 for 循环中分配的变量输出为矩阵
R:Save output for assigned variable in the nested for loop as a matrix
我有一个使用两个矩阵 M1 和 M2 的嵌套 for 循环,打印时我能够得到我想要的输出。由于我在 for 循环中分配了另一个名为 'y' 的变量来获取我的输出,所以我不确定如何将最终输出保存在矩阵中。这些是我的代码,
A<-c('a','a','a','b','b','b','c','c','c')
B<-c('a','b','c','a','b','c','a','b','c')
C<-c(0,1,2,1,0,3,2,3,0)
D<-data.frame(A,B,C)
library("reshape2")
M1<-acast(D, list(names(D)[1], names(D)[2]))
M2<-matrix(c(1000,800,500),nrow=3,ncol=1)
for(i in 1:3)
{
for(j in 1:3)
{
y=0
for(k in 1:3)
{
if(M1[i,k]<M1[i,j])
{
y=y+M2[k,1]
}
}
y=y-M2[i,1]
if(y<0)
{
print(0)
}
else
print(y)
}
}
我试图预先定义输出变量然后分配给它。
output<-matrix(0,9,1)
for(i in 1:3)
{
for(j in 1:3)
{
y=0
for(k in 1:3)
{
if(M1[i,k]<M1[i,j])
{
y=y+M2[k,1]
}
}
y=y-M2[i,1]
if(y<0)
{
print(0)
}
else
output[y]<-y
}
}
output
当我这样赋值时,我得到了多个 NA 值、零和一些输出值。
我是 for 循环的新手。任何帮助都会很大 appreciated.Thanks!
我可以通过下面的代码得到我想要的矩阵
output<-matrix(0,9,1)
for(i in 1:3)
{
for(j in 1:3)
{
y=0
for(k in 1:3)
{
if(M1[i,k]<M1[i,j])
{
y=y+M2[k,1]
}
}
y=y-M2[i,1]
if(y<0)
{
output[j+(3*(i-1)),1]<-0
}
else
output[j+(3*(i-1)),1]<-y
}
}
View(output)
我有一个使用两个矩阵 M1 和 M2 的嵌套 for 循环,打印时我能够得到我想要的输出。由于我在 for 循环中分配了另一个名为 'y' 的变量来获取我的输出,所以我不确定如何将最终输出保存在矩阵中。这些是我的代码,
A<-c('a','a','a','b','b','b','c','c','c')
B<-c('a','b','c','a','b','c','a','b','c')
C<-c(0,1,2,1,0,3,2,3,0)
D<-data.frame(A,B,C)
library("reshape2")
M1<-acast(D, list(names(D)[1], names(D)[2]))
M2<-matrix(c(1000,800,500),nrow=3,ncol=1)
for(i in 1:3)
{
for(j in 1:3)
{
y=0
for(k in 1:3)
{
if(M1[i,k]<M1[i,j])
{
y=y+M2[k,1]
}
}
y=y-M2[i,1]
if(y<0)
{
print(0)
}
else
print(y)
}
}
我试图预先定义输出变量然后分配给它。
output<-matrix(0,9,1)
for(i in 1:3)
{
for(j in 1:3)
{
y=0
for(k in 1:3)
{
if(M1[i,k]<M1[i,j])
{
y=y+M2[k,1]
}
}
y=y-M2[i,1]
if(y<0)
{
print(0)
}
else
output[y]<-y
}
}
output
当我这样赋值时,我得到了多个 NA 值、零和一些输出值。
我是 for 循环的新手。任何帮助都会很大 appreciated.Thanks!
我可以通过下面的代码得到我想要的矩阵
output<-matrix(0,9,1)
for(i in 1:3)
{
for(j in 1:3)
{
y=0
for(k in 1:3)
{
if(M1[i,k]<M1[i,j])
{
y=y+M2[k,1]
}
}
y=y-M2[i,1]
if(y<0)
{
output[j+(3*(i-1)),1]<-0
}
else
output[j+(3*(i-1)),1]<-y
}
}
View(output)