2017-10-10 7 views
0

Rの関数内のすべての変数に対してforループによって出力される行列を結合しようとしていますか? 私は179=length(b)の変数を持ち、各変数には2000 rows=nrow(data.test)28 columns=length(x2)という行列があるとします。 最終マトリックス次のように私は、forループを試してみましたrows=nrow(data.test)length(x2) * (ncol(data.test)-1) を持つ必要がありますが、値は、最後の行列にforループで出力される行列を結合する方法

MyFunction <- function(data.train,x2,no.sample,data.test) 
{ pre_var = matrix(,nrow = nrow(data.test), ncol = length(x2) * (ncol(data.test)-1)) 
for(b in 1:(ncol(data.test)-1)) 
{ false= NULL ; true=NULL 
    pred_test = matrix(,nrow = nrow(data.test), ncol = length(x2)) 
    for(w in 1:length(x2)) 
    { ## there are some lines here to produce false and true values 

    pred_test[,w] = as.numeric(ifelse(data.test[,b] > x2[w] 
             ,true[w] ,false[w]))} 
    pre_var = cbind(pre_var,pred_test) 
} 
results = NULL 
results = pre_var 
} 
+0

多分あなたはリストに最初に入れてみることができます...そして、cbindを実行します。多分あなたはそれをより簡単にデバッグすることができます – zwep

+0

pre_var = list(cbind(pre_var、pred_test)はこのような意味です) – Amani

+0

@Amani論理については本当ですか? 'true < - NULL; – jogo

答えて

0

レッツ・簡略化のためには格納されませんでしたが、これはあなたの結果の1の行列であると仮定します

A = matrix(runif(9),ncol=3) 

あなたがしたいことは、まずリストに入れます。この設定では、元のマトリックスを繰り返すだけです。あなたの場合、もちろん行列を生成してください。

A_list = rep(list(A),5) 

次のステップはこれらを一緒に結合することです。ここでは簡単なcbind-forloopがあります。

n <- length(A_list) 
res <- NULL 
for(i in seq(n)){ 
    res <- cbind(res, A_list[[i]]) 
} 
res 

Et Voila、私はこれがあなたの望むものだと思います。

+0

これはとてもうまくいった、ありがとう@zwep – Amani

関連する問題