将两个数据框导出到同一文件

时间:2017-08-17 20:06:17

标签: r csv append export

我目前有两个数据帧,一个DF包含大约~100,000行,而另一个只有~1000。我可以使用下面显示的write.table函数导出其中一个...

 write.table(DF_1, file = paste("DF_one.csv" ),
        row.names = F, col.names = T, sep = ",")

这很容易被excel打开并且效果很好。问题是我需要将其他数据框包含在同一个excel文件中,并且我不确定如何执行此操作或甚至是否可能。

我对任何想法持开放态度,并提供了一些示例数据以供下面的工作。

#Example data for data frame one, length =30
Dates<-c(Sys.Date()+1:30)
Data1<-c(1+1:30)

#Data Frame One
Df1<-data.frame(Dates,Data1)

#Example data for data rame two, length=10
Letters<-c(letters[1:10])
Data2<-c(1:10)

#Data Frame Two
Df2<-data.frame(Letters,Data2)

#Now, is there a way can we export both to the same file? 

#Here is the export for just data frame one
write.table(Df1, file = paste("DFone.csv" ),
        row.names = F, col.names = T, sep = ",")

任何想法包括:&#34;停止挑剔,只需导出2个文件然后合并到excel&#34;非常感谢。

研究完成:

我喜欢这种方法,但更喜欢横向格式而不是垂直格式 (我可能不应该挑剔)

How to merge multiple data frame into one table and export to Excel?

How to write multiple tables, dataframes, regression results etc - to one excel file?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我不知道这是否会保留您想要的信息结构,但您真的打算将它们放到同一个表中,您可以执行以下操作。

Both <- data.frame(Df1,Df2)

write.table(Both, file = paste("DF_Both.csv" ),
    row.names = F, col.names = T, sep = ",")

由于第一个解决方案不符合您的要求,因此另一个解决方案是将数据框保存到Excel电子表格的多个选项卡中。

install.packages("xlsx")
library(xlsx)

###Define the save.xlsx function

save.xlsx <- function (file, ...)
{
  require(xlsx, quietly = TRUE)
  objects <- list(...)
  fargs <- as.list(match.call(expand.dots = TRUE))
  objnames <- as.character(fargs)[-c(1, 2)]
  nobjects <- length(objects)
  for (i in 1:nobjects) {
    if (i == 1)
      write.xlsx(objects[[i]], file, sheetName = objnames[i])
    else write.xlsx(objects[[i]], file, sheetName = objnames[i],
                    append = TRUE)
  }
  print(paste("Workbook", file, "has", nobjects, "worksheets."))
}

### Save the file to your working directory.

save.xlsx("WorkbookTitle.xlsx", Df1, Df2)

完全变色这是根据堆栈溢出R dataframes to multi sheet Excel Work

上的另一个问题改编的