使用r将多个数据帧导出到一个Excel工作表

时间:2018-03-22 17:17:45

标签: r excel

我在r中有大约30个不同的数据框,我希望它们在一个Excel工作表中,同样具有数据框名称。

对于输出我正在寻找类似的东西:

dfname1
col1    col2
  x        x
  x        x
dfname2
col1    col3
  x        x

我应该如何将其作为迭代过程?

1 个答案:

答案 0 :(得分:2)

在同一工作表中将数据框架名称与数据分散是个坏主意,但这取决于您。

无论如何,请使用openxlsx。这是一种方法:

dfname1 <- data.frame(col1 = c("x", "x"), col2 = c("x", "x"), stringsAsFactors = FALSE)
dfname2 <- data.frame(col1 = c("x"), col3 = c("x"), stringsAsFactors = FALSE)

df_list <- list(dfname1=dfname1,
                dfname2=dfname2)

library(openxlsx)

wb <- createWorkbook()
addWorksheet(wb, "Foo")

curr_row <- 1
for(i in seq_along(df_list)) {
  writeData(wb, "Foo", names(df_list)[i], startCol = 1, startRow = curr_row)
  writeData(wb, "Foo", df_list[[i]], startCol = 1, startRow = curr_row+1)
  curr_row <- curr_row + nrow(df_list[[i]]) + 2
}

saveWorkbook(wb, "bar.xlsx")

这给你(字面意思)你要求的东西。