You are right, this extra level disturbed me. Very impressive this solution, thank you very much.
Le 09/07/2021 à 19:50, Bill Dunlap a écrit : > Try > matrix(init_l, nrow=4, ncol=4, > dimnames=list(c("X1","X2","X3","X4"),c("X1","X2","X3","X4"))) > It doesn't give exactly what your code does, but your code introduces > an extra level of "list", which you may not want. > > -Bill > > On Fri, Jul 9, 2021 at 10:40 AM Laurent Rhelp <laurentrh...@free.fr > <mailto:laurentrh...@free.fr>> wrote: > > Dear R-Help-list, > > I have a list init_l containing 16 dataframes and I want to > create a > matrix 4 x 4 from this list with a dataframe in every cell of the > matrix. I succeeded to do that but my loop is very uggly (cf. below). > Could somebody help me to write nice R code to do this loop ? > > Thank you very much > > Laurent > > > ## > ## mock data, 16 dataframes in a list > ## > init_l <- lapply( seq(1,16) , function(x) { > data.frame( V1 = rnorm(3), > V2 = rnorm(3), > V3 = rnorm(3) > ) > }) > > ## > ## lists matrix creation with n = 4 columns and n = 4 rows > ## > n <- 4 > ## an example of row to create the matrix with lists in the cells > one_row <- rbind( rep( list(rep(list(1),3)) , n) ) > mymat <- do.call( "rbind" , rep( list(one_row) , n) ) > > ## > ## The UGGLY loop I would like to improve: > ## > > ## populate the matrix > k <- 1 > for( i in 1:n){ > for( j in 1:n){ > mymat[i,j][[1]] <- list( init_l[[ k ]] ) > k <- k+1 > } > } > > colnames(mymat) <- c("X1", "X2", "X3", "X3") > rownames(mymat) <- c("X1", "X2", "X3", "X4") > > > mymat > > # X1 X2 X3 X3 > # X1 List,1 List,1 List,1 List,1 > # X2 List,1 List,1 List,1 List,1 > # X3 List,1 List,1 List,1 List,1 > # X4 List,1 List,1 List,1 List,1 > > > # > # verification, it works > # > mymat[2,2] > init_l[[6]] > > ## > init_l[[6]] > > library(tidyverse) > mymat.t <- as.tibble(mymat) > mymat.t > unnest(mymat.t[2,2],cols="X2")[[1]][[1]] > > mymat.df <- as.data.frame(mymat) > mymat.df[2,2][[1]][[1]] > > > thx > > > > -- > L'absence de virus dans ce courrier électronique a été vérifiée > par le logiciel antivirus Avast. > https://www.avast.com/antivirus <https://www.avast.com/antivirus> > > ______________________________________________ > R-help@r-project.org <mailto:R-help@r-project.org> mailing list -- > To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > <https://stat.ethz.ch/mailman/listinfo/r-help> > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > <http://www.R-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > -- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.