2016-09-17 3 views
1

要素のリストを反復処理するlapply関数があります。各要素について、結果は行列です。要素のリストとマトリックスのリストに基づいて、私は、フォームのデータフレームのリストを返したいRのデータフレームの要素としての行列

element1, matrix1 
element2, matrix2 
... 
... 
elementn, matrixn 

例:

e <- list(1,2) 
r <- lapply(e, function(x) matrix(ncol = x, nrow = x)) 

が、私はこれらの要素のリストを取得したいと思います

(1, matrix(1x1)) 
(2, matrix(2x2)) 

答えて

1

データ・フレーム内の1つの要素として行列をラップすることができるI(list(...))と、lapply機能のデータフレームを構築することができる:あなたがdo.call(rbind, ...)と一緒に結果をrbindでき

r 
# [[1]] 
# element mat 
# 1  1 NA 

# [[2]] 
# element   mat 
# 1  2 NA, NA, .... 

do.call(rbind, r) 
# element   mat 
# 1  1   NA 
# 2  2 NA, NA, .... 
これは、データフレームのリストを与える
r <- lapply(e, function(x) data.frame(element = x, mat = I(list(matrix(ncol = x, nrow = x))))) 
関連する問題