2017-07-20 15 views
0

簡単な質問。 行列をリストのリストに変換する

は私が持っている matrix

my.mat <- matrix(c(1,5,2,6),nrow=2,ncol=2) 
私は行によって listslistに変換したい

ので、上記の例の結果は次のとおりです。

my.list <- list(list(1,2),list(5,6)) 

私はそれを行うにはどうすればよいです?

答えて

2

使用apply

apply(my.mat, 1, as.list) 

identical(my.list, apply(my.mat, 1, as.list)) 
#[1] TRUE 
1

あなたはまた、lapply

lapply(1:NROW(my.mat), function(i) lapply(1:NCOL(my.mat), function(j) my.mat[i,j])) 

identical(my.list, lapply(1:NROW(my.mat), function(i) 
    lapply(1:NCOL(my.mat), function(j) 
     my.mat[i,j]))) 
#[1] TRUE 
+1

この(なしネストされたループ)の簡素化を使用することができますが、lapply(seq_len(nrow(my.mat)) '関数(ありますx)as.list(my.mat [x、])) '。 – lmo

関連する問題