0

重複の可能性:
変数名を生成する (get() のようなもの)

自動化された方法で異なる名前の行列を作成したい場合、問題が発生します。

たとえば、a1、a2、a3 という名前の 3 つのマトリックスを作成したいとします。

 x<-1:3
 a<-"a"
 listofnames<-paste(a,x)  ## a vector with the names that I want to use for my matrices

私の問題は、作成したベクトルとは異なる名前を行列に割り当てることです。たとえば、a1 (私のベクトルの最初の「名前」) という行列を作成する場合、これはもちろんまったく機能しません。

 listofnames[1]<-matrix(ncol=2,nrow=2)

しかし、どうすればいいですか?

私はインターネットで探していましたが、答えが見つかりません..どうもありがとうございました

4

2 に答える 2

3

次のように使用assignします。

x<-1:3
a<-"a"
listofnames <-paste(a,x) 

set.seed(001)
for(i in 1:length(listofnames)){
  assign(listofnames[i], matrix(sample(9), ncol=3))
}


get(listofnames[1])
     [,1] [,2] [,3]
[1,]    3    6    8
[2,]    9    2    7
[3,]    5    4    1

get(listofnames[2])
     [,1] [,2] [,3]
[1,]    1    5    6
[2,]    2    7    3
[3,]    8    4    9

get(listofnames[3])
     [,1] [,2] [,3]
[1,]    4    2    5
[2,]    7    9    3
[3,]    8    1    6

に含まれる名前に行列を割り当てると、上記の関数をlistofnames使用してアクセスできます。getこれだけlistofnames[1]を行うと、最初の名前が表示されますがlistofnames、その名前で保存されている要素は表示されません。そのためには、使用する必要がありますget(listofnames[1])

于 2012-10-30T16:19:17.343 に答える
1

達成しようとしていることを正確に説明したほうがよいかもしれませんが、次のことも調べてassign()ください。

x <- 1:3
a <- "a"
listofnames <- paste(a, x, sep="")
assign(listofnames[1], matrix(nrow = 2, ncol = 2))
a1
     [,1] [,2]
[1,]   NA   NA
[2,]   NA   NA
于 2012-10-30T16:17:06.517 に答える