【问题标题】:R: How to export a structured list to excelR:如何将结构化列表导出到 Excel
【发布时间】:2012-11-19 12:38:35
【问题描述】:

这应该很简单,但我对unlistmatrix 的努力失败了。

如何将以下列表导出到保留相同结构的 Excel 工作表中?

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"))

谢谢!

【问题讨论】:

  • 您的对象是一列数据的列表。框架,Excel 工作表是表格。你希望输出是什么样的?结果表的一列中的列表中的每个 data.frame?
  • 我是否正确看到行数不同?导出不存在的元素需要包含哪些内容?
  • 我认为如果 excel 中的输出看起来像 R 中的输出就足够了,即三个向量一个接一个。
  • @Rico 然后使用 Andrie 的答案并通过XLConnect 进行导出:stackoverflow.com/questions/11222027/…

标签: r excel list export


【解决方案1】:

你可以这样做:

  1. NA 填充每个向量以使所有向量的长度相同
  2. 使用do.call(rbind, ...) 创建数据框

像这样:

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

那么使用write.table() 或您最喜欢的导出到excel 方法就很简单了。

【讨论】:

  • 但是如何保存列表名称以了解所有数据
猜你喜欢
  • 1970-01-01
  • 2017-08-12
  • 2012-09-06
  • 2018-10-15
  • 1970-01-01
  • 2012-07-30
  • 1970-01-01
  • 2020-02-05
相关资源
最近更新 更多