R語言操作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)); }
Windows
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。