2017-03-23 29 views
1

forループを使用して、ループの各反復で新しい行列を作成したいとします。各ループ反復で新しい行列を作成する

mining_t = c("Zr_t","Sr_t","Rb_t","Zn_t","Cu_t","Fe_t","Mn_t","V_t","Ti_t","Ca_t","K_t","Ba_t") 

for (i in mining_t){ 
    ??=matrix(c(VI9A_mn[1:7,i],VI9A_mn[8:14,i],VI9A_mn[15:21,i]),nrow=7,byrow=FALSE) 
    colnames(i)=c("45","90","135") 
} 

私は、各行列は7行の3列を持っているしたいと思います。新しい各行列は、行列VI9A_mnのi番目の列(すべての行)から作成され、ベクトルmining_tの関連要素の名前を持つ必要があります。

+0

を使用している場合でも、 – akrun

答えて

0

我々はlistmatrixオブジェクトを保持する方が良い「VI9A_mn」

lst <- lapply(split(VI9A_mn, col(VI9A_mn)), 
       matrix, ncol=3, dimnames = list(NULL, c(45, 90, 135))) 

の列でsplitを行うことができます。私たちは地球環境に複数のオブジェクトを持っていると主張し、list2env

list2env(lst, envir = .GlobalEnv) 
+0

ニースの下に掲載の回答であったとして代わりに 'list'で働く、世界的な環境で複数のオブジェクトを作成しない方がよいです、 どうも!そして、リストの各要素を別の名前(私のベクトル "mining_t"にある名前)で呼び出す方法はありますか? –

+0

@ jo.H lst [[1]] 'または' lst $ Zr_t '要素または' lst [[mining_t [1]]]を呼び出す ' – akrun

関連する問題