ループを使用してmvn 共変量で行列n
を作成しようとしています。非常に単純ですが、これまでのところ機能していません...これが私のコードです:k
k
n=1000
k=5
p=100
mu=0
sigma=1
x=matrix(data=NA, nrow=n, ncol=k)
for (i in 1:k){
x [[i]]= mvrnorm(n,mu,sigma)
}
何が欠けていますか?
ループを使用してmvn 共変量で行列n
を作成しようとしています。非常に単純ですが、これまでのところ機能していません...これが私のコードです:k
k
n=1000
k=5
p=100
mu=0
sigma=1
x=matrix(data=NA, nrow=n, ncol=k)
for (i in 1:k){
x [[i]]= mvrnorm(n,mu,sigma)
}
何が欠けていますか?
ここでいくつかのことがわかります:
set.seed(20430)
)。これは、コードを実行するたびに、まったく同じ擬似乱数変量のセットが得られることを意味します。 mu = 0
の法線データが必要な場合は、およびを指定する必要はありません。sigma = 1
これらは のデフォルト値だからですrnorm()
。 data=
引数を使用して直接追加するだけです。matrix()
ループを使用することに本当にコミットしている場合は、おそらく二重ループを使用して、列をループし、各ループ内で行をループする必要があります。(これは R でコーディングする非常に非効率的な方法であることに注意してください。ただし、私は常にそのようなことを行っています ;-)。 p
最後に、あなたのコードで 何をしているのかわかりません。これは、あなたが行っているように見えることを行うための基本的な方法です。
set.seed(20430)
n = 1000
k = 5
dat = rnorm(n*k)
x = matrix(data=dat, nrow=n, ncol=k)
本当にループを使用したい場合は、次のようにすることができます。
mu = 0
sigma = 1
x = matrix(data=NA, nrow=n, ncol=k)
for(j in 1:k){
for(i in 1:n){
x[i,j] = rnorm(1, mu, sigma)
}
}
A=c(2,3,4,5);# In your case row terms
B=c(3,4,5,6);# In your case column terms
x=matrix(,nrow = length(A), ncol = length(B));
for (i in 1:length(A)){
for (j in 1:length(B)){
x[i,j]<-(A[i]*B[j])# do the similarity function, simi(A[i],B[j])
}
}
x # matrix is filled
私は自分の問題の観点から考えていました。