r - 如何按矩阵内的行堆叠列表(数据帧或向量)的元素,包括 R 中的列名称?

标签 r list data-wrangling

我的目标是将多个数据框导出到单个 Excel 工作表。

我想要一个适用于任何列表的通用代码。

数据概要

# df1
  a
1 1
2 1

# df2
  b c
1 3 4

# vec
[1] "string"

所需输出

     [,1]     [,2]
[1,] "a"      NA  
[2,] "1"      NA  
[3,] "1"      NA  
[4,] NA       NA  
[5,] "b"      "c" 
[6,] "3"      "4" 
[7,] NA       NA  
[8,] "string" NA 

数据

df1 <- data.frame(a = c(1, 1))
df2 <- data.frame(b = 3, c = 4)
vec <- "string"
l   <- list(df1, df2, vec)

最佳答案

正如您所说,您需要导出到单个 Excel 工作表。您可以使用 {openxlsx} 和一个简单的循环来计算列表中每个元素在 Excel 工作表中的起始行。

library(openxlsx)

wb <- createWorkbook()
addWorksheet(wb, "sheet1")
sr <- 1 # startRow

for(x in lst) {
  writeData(wb, "sheet1", x, startRow = sr, colNames = !is.null(colnames(x)))
  sr <- sr + ifelse(!is.null(nrow(x)), nrow(x) + !is.null(colnames(x)), length(x)) + 1L
}

saveWorkbook(wb, "test.xlsx", overwrite = TRUE)
  • 图:test.xlsx

enter image description here

关于r - 如何按矩阵内的行堆叠列表(数据帧或向量)的元素,包括 R 中的列名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76066046/

相关文章:

RStudio 可视化编辑器 - data.frame 预览太窄,无法调整大小

r - 如何在 R 中绘制对数刻度密度曲线直到极值?

r - 查找第一个和最后一个非 NA 值之间的列数

ruby-on-rails - 路由 root 以显示登录用户的用户帖子和未登录用户的静态页面

list - Haskell:用关联列表中的给定键替换元素

r - 对具有特定条件的特定行求和

r - 为什么这些数字不相等?

asp.net-mvc - 如何在 mvc 中更新 IEnumerable<Object>?

r - 将 R 数据帧过滤为 n 个最常见的情况并按频率排序

r - 基于 R 中特定列的求和创建新值