我的目标是将多个数据框导出到单个 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
关于r - 如何按矩阵内的行堆叠列表(数据帧或向量)的元素,包括 R 中的列名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76066046/