2016-09-17 1 views
1

Ich habe eine Lapply-Funktion, die über eine Liste von Elementen iteriert. Für jedes Element ist das Ergebnis eine Matrix. Basierend auf der Liste der Elemente und die Liste des Matrizes, würde ich gerne eine Liste von Datenrahmen der Form zurückzukehrenMatrix als Element eines Datenrahmens in R

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

Beispiel:

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

Ich mag eine Liste mit diesen Elementen erhalten

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

Antwort

1

Sie können Datenrahmen in der lapply Funktion konstruieren, mit I(list(...)) dem die Matrix als ein Element in dem Datenrahmen wickeln kann:

r <- lapply(e, function(x) data.frame(element = x, mat = I(list(matrix(ncol = x, nrow = x))))) 

Diese Liste von Datenrahmen gibt:

do.call(rbind, r) 
# element   mat 
# 1  1   NA 
# 2  2 NA, NA, .... 
:

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

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

Sie das Ergebnis zusammen mit do.call(rbind, ...) rbind können

Verwandte Themen