複数の行列を作成し、その関数によって得られた値を自動的に特定の行に割り当てる必要があります。行列名が文字列の場合に行列の行に値を代入する方法
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
とつのループが実行された後(I = 1)Iは、1行が充填(及び第二後に有するように、すべての実施例の行列をexpext - ので、第二行充填ループが終了すると、数字でいっぱいのEXAMPLE行列ができます)。私はペースト機能によってマトリックス名を渡すため
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] NA NA NA NA
[3,] NA NA NA NA
[4,] NA NA NA NA
点は、しかし、私はどのように、マトリックスの行に値を割り当てることはありませんされています。名前を文字列にしたい場合は、行列の特定の行に値を割り当てる方法は?どんな助けも素晴らしいだろう。ありがとう
...エディション... 私は非常に明確ではないことを申し訳ありません。私が言及したように、関数の結果(私の行列と同じ数の列を持つことになります)を行列の行に書きたいと思います。各行は、異なる観測に適用された関数からの結果を取ります。同じ変数にいくつかの関数を適用したいので、異なる関数の結果(列番号が異なり、名前が異なる)のためにいくつかの行列があります。行列の番号が付けられ、名前が付けられた方法は、結果を追跡して後で比較するのが最も簡単です。上記の私は行列の列に値を割り当てることができないという問題の例を挙げました。なぜなら、行列の名前を文字列として与えるからです(そうしなければ、番号付けがかなり行われるからです)。だから、一般的に、私は
私はその観察を示すためにマトリックスの名前を生成するためのループとpaste0("EXAMPLE", j)
を使用して、私なぜjは10から1つのまたはいくつかの他の数字
ザッツを行く
EXAMPLEj[i,]<-SomeFunctionResult
を行うことができるようにしたいです関数を使用して、その行に結果を格納します。行列はすでに作成されていますが、行列の行に結果を渡す方法はありませんでした。
私はR(およびプログラミング)で新しいので、これを解決するために最悪の方法を選択した可能性があり、そのリストまたは配列ははるかに使いやすくなります。ご回答いただきありがとうございます。
あなたが望む結果が得られますか? –
列に「1,2,3,4」の行列を作成して、それをすべての行について繰り返そうとしていますか? –
あなたは何をしたいのですか? 1つの行列で何をしたいかを見せてください。そして、あなたの変数をリストに入れて、 'do.call'や' lapply'を使って、単一の行列に対して何をするのかを一般化する方が良いと思います。 – agstudy