通过Excel中的RODBC导出数据

时间:2013-02-15 15:14:58

标签: r export-to-excel rodbc

在R中执行计算后,我们想要将结果导出到Excel文件中,以便进行一些格式化和添加图形。我在下一页

http://learnr.wordpress.com/2009/10/06/export-data-frames-to-multi-worksheet-excel-file/

报告以下代码

> library(RODBC) 

> save2excel <- function(x) sqlSave(xlsFile,
     x, tablename = x$Species[1], rownames = FALSE)    

> xlsFile <- odbcConnectExcel("RODBC.xls", readOnly = FALSE)
> l_ply(testlist, save2excel)
> odbcCloseAll() 

我在实现它时遇到了一些困难,实际上它会返回一个错误,如:

Errore in sqlSave(xlsFile, x, tablename = NULL, rownames = FALSE) : 
  should be a data frame

你有任何提示吗?

2 个答案:

答案 0 :(得分:1)

是。它看起来像是一个列表/向量。您只能将数据帧保存为excel表。如果您提供有关数据结构的更多信息,我们可以为您提供帮助。

一种最常用的方法,如果你的列表/矢量形式的数据,它可能是一个概率,但如果它是一个逻辑表(矩阵/数据表等),你可以做一个as.data.frame(x)来做它DF。

答案 1 :(得分:0)

我使用相同的(伟大的)博客帖子并遇到了两个相同的错误(数据框和excel文件已损坏)。听起来你已经找到了data.frame部分,但仍然得到了损坏的文件错误。我不得不删除博客帖子的功能方面以消除该错误。

newdat <- data.frame(rnorm(100,0,10))

xlsFile <- odbcConnectExcel("Test.xls", readOnly = FALSE)
sqlSave(xlsFile,newdat, append=FALSE)
odbcCloseAll()

这应该在名为“Test.xls”的文件中创建一个名为“newdat”的新工作表。如果该文件已存在,则它将是一个新工作表。否则它将创建文件并成为唯一的工作表。