How does one convert a list into a data frame?> str(weight_chains)List of 1 $ : 'mcmc' num [1:100000, 1:3] -105 -105 -105 -104 -103 ... ..- attr(*, "dimnames")=List of 2 .. ..$ : NULL .. ..$ : chr [1:3] "a" "b" "s" ..- attr(*, "mcpar")= num [1:3] 1001 101000 1 - attr(*, "class")= chr "mcmc.list" Such that ..>weight_chains a b s 1 -104.72512 1.0141407 9.369227 2 -104.52297 1.0167432 9.131354 3 -104.72669 1.0139528 9.219877 [[alternative HTML version deleted]]
Here is a reprex that does what I think you want: ex <- list(mcmc = matrix(1:12, ncol = 3, byrow=TRUE), NULL, c("a","b", "s")) dex <- data.frame(ex$mcmc) names(dex) <- ex[[3]]> dexa b s 1 1 2 3 2 4 5 6 3 7 8 9 4 10 11 12 If this is not correct, you should provide a **plain text** reprex. Of course, even if correct, this is not a template. The exact process will depend on the structure of the list. Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Sat, Jul 24, 2021 at 6:19 AM Jeff Reichman <reichmanj at sbcglobal.net> wrote:> How does one convert a list into a data frame? > > > > > str(weight_chains) > > List of 1 > > $ : 'mcmc' num [1:100000, 1:3] -105 -105 -105 -104 -103 ... > > ..- attr(*, "dimnames")=List of 2 > > .. ..$ : NULL > > .. ..$ : chr [1:3] "a" "b" "s" > > ..- attr(*, "mcpar")= num [1:3] 1001 101000 1 > > - attr(*, "class")= chr "mcmc.list" > > > > Such that .. > > > > > > > weight_chains > > > > a b s > > 1 -104.72512 1.0141407 9.369227 > > 2 -104.52297 1.0167432 9.131354 > > 3 -104.72669 1.0139528 9.219877 > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >[[alternative HTML version deleted]]
Hello, This should do it: as.data.frame(weight_chains$mcmc) The only list member already has a dim attribute of length 2 and dimnames' 2nd member are the colnames, just coerce to df. Hope this helps, Rui Barradas ?s 14:18 de 24/07/21, Jeff Reichman escreveu:> How does one convert a list into a data frame? > > > >> str(weight_chains) > > List of 1 > > $ : 'mcmc' num [1:100000, 1:3] -105 -105 -105 -104 -103 ... > > ..- attr(*, "dimnames")=List of 2 > > .. ..$ : NULL > > .. ..$ : chr [1:3] "a" "b" "s" > > ..- attr(*, "mcpar")= num [1:3] 1001 101000 1 > > - attr(*, "class")= chr "mcmc.list" > > > > Such that .. > > > >> > > weight_chains > > > > a b s > > 1 -104.72512 1.0141407 9.369227 > > 2 -104.52297 1.0167432 9.131354 > > 3 -104.72669 1.0139528 9.219877 > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >
Others have shown you how to extract the matrix and convert it to a dataframe. My only addition is to suggest that you don't do this: matrix methods are often much more efficient than dataframe methods, so if you can work with the matrix without conversion, you'll often find things run a lot faster. Duncan Murdoch On 24/07/2021 9:18 a.m., Jeff Reichman wrote:> How does one convert a list into a data frame? > > > >> str(weight_chains) > > List of 1 > > $ : 'mcmc' num [1:100000, 1:3] -105 -105 -105 -104 -103 ... > > ..- attr(*, "dimnames")=List of 2 > > .. ..$ : NULL > > .. ..$ : chr [1:3] "a" "b" "s" > > ..- attr(*, "mcpar")= num [1:3] 1001 101000 1 > > - attr(*, "class")= chr "mcmc.list" > > > > Such that .. > > > >> > > weight_chains > > > > a b s > > 1 -104.72512 1.0141407 9.369227 > > 2 -104.52297 1.0167432 9.131354 > > 3 -104.72669 1.0139528 9.219877 > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >