天天看點

R語言:64位作業系統讀取excel檔案方法總結

首先嘗試的是RODBC,不過過程相當不順利 我電腦上安裝的是office 2003,ODBC資料源裡面找不到excel的驅動程式 原因是office是32為版本,安裝的驅動程式無法在64位的win7上使用。 運作c:\windows\sysWOW64\odbcad3 …

1、首先嘗試的是RODBC,不過過程相當不順利

我電腦上安裝的是office 2003,ODBC資料源裡面找不到excel的驅動程式

原因是office是32為版本,安裝的驅動程式無法在64位的win7上使用。

運作c:\windows\sysWOW64\odbcad32.exe後,可以配置32為的ODBC資料源。

按照網上的說明,建立32位的資料源後,無法在R裡面擷取連接配接

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(“c:/r-workspace/contacts.xls”)

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

odbcConnectExcel is only usable with 32-bit Windows

2、測試使用剪貼闆的讀取excel的方法,是可以的,但總覺得不是好辦法

df = read.table(“clipboard”, header=TRUE, sep=”\t”)

df

name gender address

1 張三 男 北京

2 李四 男 上海

3 王五 女 廣州

4 趙六 女 深圳

5 田七 男 南京

3、成功使用XLConnect的包直接讀取excel檔案,就是這個包依賴于XLConnectJars包,比較大(15.7M)

install.packages(“XLConnect”)

library(“XLConnect”)

df = readWorksheetFromFile(“c:/r-workspace/contacts.xls”, sheet=1, header=TRUE)

df

name gender address

1 張三 男 北京

2 李四 男 上海

3 王五 女 廣州

4 趙六 女 深圳

5 田七 男 南京

4、下面我要說的這種方法,是安裝xlsx包。

大家會發現安裝這樣一個package,本身沒有什麼難度,但是你用不了read.xlsx這個函數。

用的R版本是:3.1.1

原因在于要安裝rJava這個包。而安裝這個包,需要先在電腦裡安裝Java程式才行。

有的時候,安裝了Java還是不行。之前幫人安裝了一下,發現一個小技巧:

如果将Java安裝到和R的安裝檔案一個目錄下,基本就沒有什麼問題,也不存在網上說的:要設定Java環境變量。

另外,大家去Java官網下載下傳的時候,最好是離線安裝,不要選擇線上安裝。

如下gif圖:

R語言:64位作業系統讀取excel檔案方法總結

安裝Java程式

總結一下成功使用xlsx包的步驟:(樓主的系統是win7 32位的)

1.安裝Java程式(上傳了一個win7 32位系統的Java安裝程式及網址:http://www.java.com/zh_CN/download/windows_offline.jsp)

2.在R裡面輸入:

install.packages("rJava")
install.packages("xlsx")
           

複制代碼

安裝這兩個包,會提示你還有一個包, “xlsxjars”這個包一般會在這個過程中自動安裝,如果沒有安裝的話,可以再按照上面的指令,安裝一個”xlsxjars”這個包。

3.接下來:

>library(xlsx)
Loading required package: rJava
Loading required package: xlsxjars
           

複制代碼

出現下面兩個,就算安裝成功了。

接下來就可以使用read.xlsx函數讀取了,具體用法可以:

?read.xlsx
           

複制代碼

備注:

大家可能覺得讀取xlsx檔案,安裝個Java程式很麻煩的。因為R是開源的軟體,調用其它程式來實作一些更為強大的功能,也是常有的事情。安裝了rJava這個包和Java程式之後,有一個比較好的MINE程式也可以運作的,還可以實作中文分詞等更多功能。

為了以後可以使用更多好的程式,為什麼不能忍一時之費事,而為将來節約更多的時間呢?

繼續閱讀