2017-10-15 1 views
1

Vous recherchez le plus intelligent et code le plus court pour résoudre le problème suivant dans l'affaire R. Deux solutions non appropriées sont fournis ...-LIST-multicouches MATRICE à la transformation en R et une façon mieux que d'utiliser des boucles

#Generating a multi-layered list 
m  <- matrix(1:50, ncol = 5, byrow = TRUE) 
mList <- list(m[1:5,], m[6:10,]) 
mList 

#Transforming list to array: Option one 
mArrayOne <- array(c(mList[[1]], mList[[2]]), dim = c(5,5,2)) 
mArrayOne 

#Transforming list to array: Option two 
mArrayTwo <- array(numeric(), dim = c(dim(mList[[1]]), length(mList))) 
for(i in 1:length(mList)){mArrayTwo[,,i] <- mList[[i]]} 
mArrayTwo 

Tout soupçon est la bienvenue - merci ...

+0

Vous pouvez utiliser le tableau '' unlist'-à-dire (unlist (mList), dim = c (5,5,2)) ' – akrun

+0

Woop woop ;-) ... c'est exactement ce que je cherchais ... merci beaucoup @akrun ... – Robert

Répondre

0

Nous pouvons juste unlist le list et créer le array

array(unlist(mList), dim = c(5,5,2))