【问题标题】:how to export the results into different tabs of excel in R如何将结果导出到R中excel的不同选项卡中
【发布时间】:2016-03-09 16:26:37
【问题描述】:

我有多个数据框,我想将它们导出到 excel/csv 文件的不同选项卡中。我将把我的 15 个数据框分成三组,每组 5 个。这样,我将拥有三个带有五个不同选项卡的 Excel 工作表,而不是 15 个单独的 Excel 工作表。

导出到excel:

#fake data 
data_1<-data.frame(c(03,23,4,2))
data_2<-data.frame(c(0223,3,1,2))
data_3<-data.frame(c(0232,3,1,1))
data_4<-data.frame(c(21,23,5,6))
data_5<-data.frame(c(24,5,6,7))

#fake names
mydatasets<-c(data_1,data_2,data_3,data_4,data_5)
mytitles<-c("data1", "data2", "data3","data4", "data5")


#for loop to write out individual csv files
for (i in 1:5)) {
a <- mydatasets[i]
title<-mytitles[i]
myfile <- paste0(title, "_", ".csv")
write.csv(a, file = myfile)
               }

如何获取上述代码以将这些 csv 文件合并到一个 csv 文件或 excel 文件的多个选项卡中?

【问题讨论】:

  • 您可以查看更复杂的包,例如 XLConnect,以在 R 中创建工作簿。

标签: r excel export-to-excel export-to-csv


【解决方案1】:

CSV 文件仅包含 1 张纸。另一种方法是写入 XLSX。函数xlsx::write.xlsx 接受一个参数sheetName

library(xlsx)

# Use data from the question
for (i in seq_along(mydatasets)) {
  write.xlsx(x = mydatasets[i], 
             file = "myfile.xlsx", 
             sheetName = mytitles[i],
             append = TRUE)
}

注意append = TRUE 以避免覆盖文件而不是向其附加工作表。

xlsx 包依赖于rJava。首次使用该软件包有时会导致麻烦 - 请参阅 this question 了解常见解决方案。

【讨论】:

  • 该解决方案看起来很干净,但是当我最终尝试它时,我遇到了包依赖关系的问题。我做了install.packages("xlsx") library(xlsx),然后安装了一个 rJava 包,因为它很难自行加载依赖项,但仍然无法正常工作。
  • 是的,rJava 包有时会有点麻烦。你得到什么错误信息? this 能解决你的问题吗?
  • 这确实解决了我的问题!谢谢。现在,我只是想弄清楚如何维护每个数据框的格式。我的输出只为我提供了工作表中每个数据框的第一列。我的真实数据集是具有多列的数据框。我没有意识到,当我调用 `mydatasets
  • 您可能想使用 list() 而不是 c()。不要忘记适当地更改子集: mydatasets[[i]] .
猜你喜欢
  • 1970-01-01
  • 2015-10-14
  • 2013-09-28
  • 2021-07-27
  • 2017-10-07
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 2017-05-31
相关资源
最近更新 更多