Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

R: How to export a structured list to excel

Tags:

list

r

export

excel

This should be very simple, but my efforts with unlist or matrix failed.

How can you export the following list into an excel sheet that preserves the same structure?

list(structure(list(rob = c(0.500395231401348, 0.839314035292317, 
0.710466394967634, 0.61574235723249)), .Names = "rob", row.names = c(NA, 
4L), class = "data.frame"), structure(list(rob = c(0.66163340478379, 
0.591092739290417, 0.554484883310407, 0.78199375944331, 0.489388775242085
)), .Names = "rob", row.names = c(NA, 5L), class = "data.frame"), 
    structure(list(rob = c(0.697897964659196, 0.480394119894312, 
    0.514294379103359, 0.626971885076273, 0.77938643423231, 0.618135503224601
    )), .Names = "rob", row.names = c(NA, 6L), class = "data.frame"))

Thanks!

like image 749
Rico Avatar asked Feb 18 '23 11:02

Rico


1 Answers

You can do it by:

  1. Padding each vector with NA to make all vectors the same length
  2. Using do.call(rbind, ...) to create a data frame

Like this:

xx <- lapply(x, unlist)
max <- max(sapply(xx, length))
do.call(rbind, lapply(xx, function(z)c(z, rep(NA, max-length(z)))))

          rob1      rob2      rob3      rob4                    
[1,] 0.5003952 0.8393140 0.7104664 0.6157424        NA        NA
[2,] 0.6616334 0.5910927 0.5544849 0.7819938 0.4893888        NA
[3,] 0.6978980 0.4803941 0.5142944 0.6269719 0.7793864 0.6181355

Then it's a simple mattter of using write.table() or your favourite export to excel method.

like image 101
Andrie Avatar answered Feb 21 '23 14:02

Andrie