複数のマトリックスを作成し、関数を介して取得した値を特定の行に自動的に割り当てたいと考えています。これまでに試したことの例を挙げます。
EXAMPLE1<-matrix(ncol=4, nrow=16)
EXAMPLE2<-matrix(ncol=4, nrow=16)
EXAMPLE3<-matrix(ncol=4, nrow=16)
EXAMPLE4<-matrix(ncol=4, nrow=16)
for(i in 1:16){
for(j in 1:4){
paste0("EXAMPLE",j, "[",i,",","]")<- c(1:4)
}
}
と
for(i in 1:16){
for(j in 1:4){
get(paste0("EXAMPLE",j)[i,]<- c(1:4)
}
}
しかし、「代入対象が非言語オブジェクトに展開されます」が返されます。だから私は試しました
for(i in 1:16){
for(j in 1:4){
assign(paste0("EXAMPLE",j, "[",i,",","]"), c(1:4))
}
}
これはエラーを返しませんが、値は行列に書き込まれません。
最初は行列は空です
[,1] [,2] [,3] [,4]
[1,] NA NA NA NA
[2,] NA NA NA NA
[3,] NA NA NA NA
[4,] NA NA NA NA
そして、1回のループが実行された後(i = 1)、すべてのEXAMPLE行列が1行埋められることを期待します(そして、ループが終了すると、EXAMPLE行列が数字でいっぱいになるように、2番目から2番目の行が埋められます)。
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] NA NA NA NA
[3,] NA NA NA NA
[4,] NA NA NA NA
ポイントは、貼り付け関数でマトリックス名を渡すため、マトリックス行に値を割り当てる方法がわかりません。名前を文字列として配置したい場合、行列の特定の行に値を割り当てる方法は? どんな助けでも素晴らしいでしょう。ありがとう
...エディション... あまり明確でなくて申し訳ありません。前述したように、関数の結果 (たまたま行列と同じ数の列がある) を行列の行に書き込みたいと考えています。各行は、異なる観測に適用された関数から結果を取得します。複数の関数を同じ変数に適用したいので、異なる関数の結果に対していくつかの行列があります(列番号が異なり、名前が異なります)。マトリックスに番号を付けて名前を付けた方法は、結果を追跡して後で比較するのに最も簡単です。上記では、マトリックスの名前を文字列として指定しているため、マトリックスの行に値を割り当てることができないという問題の例を示しました (そうしないと、非常に多くの番号付けが必要になるため、そうします)。だから、一般的に私はできるようになりたいです
EXAMPLEj[i,]<-SomeFunctionResult
jは1から10またはその他の数字になります
そのため、 loop と を使用しpaste0("EXAMPLE", j)
て行列の名前を生成し、 i を使用して、関数が使用する観測と結果を配置する行を示します。マトリックスは既に作成されていますが、結果をマトリックスの行に渡す方法が見つかりませんでした。
私はR(およびプログラミング)が初めてなので、これを解決するために可能な限り最悪の方法を選択した可能性があり、リストまたは配列の方がはるかに使いやすいでしょう。ご回答ありがとうございます。