办公软件三剑客——Excel表格 可视化数据,excel表格制作教程入门,及常用公式
1300
2022-05-29
一、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)); }
Windows
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。