2017-12-29 孙小北

R语言操作Excel文件

R语言读取文本数据,今天给大家分享几种R语言读取Excel的方法,及写入Excel数据的方法。

一、R语言读取Excel数据

(1)使用剪贴板的读取excel

首先将Excel数据复制到剪贴板,然后读取剪贴板数据,是可行的,但总觉得不是好办法

data = read.table("clipboard", header=TRUE, sep="\t")
data

(2)XLConnect程序包(推荐)

使用XLConnect的包直接读取excel文件,就是这个包依赖于XLConnectJars包,比较大(15.7M)

install.packages("XLConnect") #安装XLConnect程序包,仅需要安装一次
library("XLConnect")
data= readWorksheetFromFile("D:/workspace/data.xls", sheet=1, header=TRUE)
data

可能出现错误:

载入需要的程辑包:XLConnectJars

Error : loadNamespace()里算'rJava'时.onLoad失败了,详细内容:

  调用: fun(libname, pkgname)

  错误: JAVA_HOME cannot be determined from the Registry

In addition: Warning messages:

1: 程辑包‘XLConnect’是用R版本3.3.3 来建造的 

2: 程辑包‘XLConnectJars’是用R版本3.3.3 来建造的 

Error: 无法载入程辑包‘XLConnectJars’

解决方法;安装JDK,XLConnect程序包依赖于Java环境

(3)RODBC读取Excel(本方法失败)

ODBC数据源里面找不到excel的驱动程序,原因是office是32为版本,安装的驱动程序无法在64位的win7上使用。运行c:\windows\sysWOW64\odbcad32.exe后,可以配置32为的ODBC数据源。

conn = odbcConnect("contacts")

Warning messages:

1: In odbcDriverConnect("DSN=contacts") :

[RODBC] ERROR: state IM014, code 0, message [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application

2: In odbcDriverConnect("DSN=contacts") : ODBC connection failed

使用odbcConnectExcel方法,不支持64位的windows,错误如下:

odbcConnectExcel("D:/workspace/data.xls")

Error in odbcConnectExcel("c:/r-workspace/contacts.xls") :

odbcConnectExcel is only usable with 32-bit Windows

二、R语言写数据到Excel

直接使用XLConnect程序包进行数据的写入。

(1)写入所有数据

InsertDataSIR<-function(Dir,SIR,webName)
{  
    #1.加载程序包  
    #install.packages("XLConnect")  
    library(XLConnect);  #加载读取Excel程序包  
    #读取或创建一个XLSX文件,建立连接  
    xls<-loadWorkbook(Dir,create=TRUE)  
    #创建工作表  
    createSheet(xls,name=webName)  
    #写入数据 从左上角开始  
    writeWorksheet(xls,SIR,webName,startRow = 1,startCol=1,header = FALSE)  
    #保存文档,此时才会创建  
    saveWorkbook(xls)
}

(2)按行写入数据

InsertDataSIRByRow<-function(Dir,rSIR,webName,row)
{  
    #1.加载程序包  
    #install.packages("XLConnect")  
    library(XLConnect);  #加载读取Excel程序包  
    #读取或创建一个XLSX文件,建立连接  
    xls<-loadWorkbook(Dir,create=TRUE)  
    #创建工作表  
    createSheet(xls,name=webName)  
    #写入数据 从左上角开始  
    writeWorksheet(xls,rSIR,webName,startRow = row,startCol=1,header = FALSE)  
    #保存文档,此时才会创建  
    saveWorkbook(xls);  
    print(paste("插入SIR数据",as.character(row),webName));
}


编辑:孙小北

本文地址: https://www.xiaowangyun.com/wyblog/detail/?id=116

版权归属: www.xiaowangyun.com   转载时请以链接形式注明出处

0 条评论

快来评论

物以类聚

最新评论

2017-10-06

一辈子不长,只有珍惜了,才不至于后悔。

2017-10-06

懂得感恩,才能走得更远。

标签云

归档

取消

感谢您的支持,您的每一次打赏都是一次鼓励!

扫码支持
每一次支持,都是不懈的动力

打开支付宝扫一扫,即可进行扫码打赏哦