2x2 マトリックスのコンポーネントを合計する単純な R コードがあります。
sum<-0
for(i in 1:2){ # row
for(j in 1:2){ #column
sum<-sum+mat[i,j]
}
}
outer() または他の関数を使用して、このコードを置き換えてより効率的にすることは可能ですか? 私の目的は、コード全体でネストされた for ループを置き換えて、プログラムの実行に必要な時間を短縮することです。
編集:次のようなコードスニペットでも使用してみたいと思います:
for(i in 1:2){ # row
for(j in 1:2){ #coloumn
chisqr<- chisqr+ ((mat[i,j]-expmat[i,j])^2)/expmat[i,j]
}
}
と:
for(i in 1:2){ # row
for(j in 1:2){ #coloumn
rowsum<-0
colsum<-0
for(k in 1:2){
rowsum<- rowsum+mat[i,k]
}
for(k in 1:2){
colsum<- colsum+mat[k,j]
}
expmat[i,j]<- (rowsum*colsum)/sum
}
}