2017-06-21 16 views
0

forループを使って行列を作成しようとしていますが、これまでのところうまくいきませんでした....今はRで始まります。R- forループを使って行列を埋める方法

n = 17

Mはケンドールのタウ-B値を含む行列である、のNcoI = 10 NROWS = 1

n <- length(plot[,2]); 
z1a <- 1.96; 

M1=matrix(data=NA, ncol= 10, nrow = 2); 

for (i in M[,1:10]){ 
    #print(i) 
    zr <- (1/2)*log((1+i)/(1-i)); 
    SE <- sqrt(0.437/(n-4)); 
    zU <- zr+z1a*SE; 
    zL <- zr-z1a*SE; 
    rL <- (exp(2*zL)-1)/(exp(2*zL)+1); 
    rU <- (exp(2*zU)-1)/(exp(2*zU)+1); 

    #print(rL) 
    #print(rU) 

    M1 [1,1:10] <- (exp(2*zL)-1)/(exp(2*zL)+1); 
    M1 [2,1:10] <- (exp(2*zU)-1)/(exp(2*zU)+1); 
} 

コードの最後の行は、ちょうど私が行列を埋めるためにする方法を理解することです。どうすれば問題を解決できますか?

+2

あなたの問題を理解しやすくするいくつかの欠点があります。例えば、nは不明であり、Mは未知である。また、コードでは、行列M1の1行目と2行目に繰り返し値があります。 –

+0

'list'を最初に作成し、' matrix'に変換します。例えば、 'L < - c(1,1,1,2,2,2,3,3,3)'と 'matrix(L、ncol = 3)'を試して、これがどのように機能するかを見てみましょう。 – CPak

+0

質問を修正しました... –

答えて

0

質問がわかりましたか分かりません。これはあなたが探しているものですか?私はMを0から1のランダムなユニフォーム番号で開始しました。

z1a <- 1.96; 
n <- 17 
set.seed(1) 

M = runif(10) 
M1 = matrix(data = NA, ncol = 10, nrow = 2); 

zr <- (1/2)*log((1+M)/(1-M)); 
SE <- sqrt(0.437/(n-4)); 
zU <- zr+z1a*SE; 
zL <- zr-z1a*SE; 
rL <- (exp(2*zL)-1)/(exp(2*zL)+1); 
rU <- (exp(2*zU)-1)/(exp(2*zU)+1); 

M1 [1,1:10] <- (exp(2*zL)-1)/(exp(2*zL)+1);  
M1 [2,1:10] <- (exp(2*zU)-1)/(exp(2*zU)+1); 
+0

パーフェクト...ありがとう... –

関連する問題