7

UbuntuにRODBCパッケージをインストールするのは少し厄介です。最初に私は以下をインストールすることを学びました:

$ sudo apt-get install r-cran-rodbc

パッケージはまだヘッダーファイルを探していたので、それは十分ではありませんでした。私はこの問題を次のように解決しました:

$ sudo apt-get install unixodbc-dev

よし、RODBCはUbuntuマシンに正しくインストールされています。しかし、次のスクリプトを実行しようとすると、次のようになります。

## import excel file from Dropbox

require("RODBC")

channel <- odbcConnectExcel("~/Dropbox/DATA/SAMPLE/petro.xls")

petro <- sqlFetch (channel, "weekly")

odbcClose(channel)

str(petro)
head(petro)

関数odbcConnectExcelが見つからないというエラーがスローされます。私は各文字の大文字小文字をチェックし、それが単純なタイプミスではないことを確認しました。いいえ。次に、この同じスクリプトをWindows Rインストールで実行しました(もちろん、ファイルパスは異なります)。スクリプトは機能します。

Ubuntu RのインストールでodbcConnectExcel関数が見つからない理由と、これを機能させる方法についてのアイデアはありますか?

4

2 に答える 2

6

その機能は、Excelが利用可能な場合に利用できます。言い換えれば、Ubuntuではありません。

参考までに、Rデータのインポート/エクスポートマニュアル(私の強調表示付き)から:

4.3.2パッケージRODBC

CRAN上のパッケージRODBCは、ODBCインターフェイスをサポートするデータベースソースへのインターフェイスを提供します。これは非常に広く利用可能であり、同じRコードが異なるデータベースシステムにアクセスできるようにします。RODBCはUnix/Linux、Windows、およびMac OS Xで実行され、ほとんどすべてのデータベースシステムがODBCをサポートしています。Microsoft SQL Server、Access、MySQL、PostgreSQL、Oracle、IBM DB2をWindowsでテストし、MySQL、Oracle、PostgreSQL、SQLiteをLinuxでテストしました。

ODBCはクライアントサーバーシステムであり、WindowsクライアントからUnixサーバー上で実行されているDBMSに接続し、その逆も可能です。

Windowsでは、ODBCサポートは通常インストールされており、現在のバージョンは MDACの一部としてhttp://www.microsoft.com/data/odbc/から入手できます。Unix / Linuxでは、unixODBC( http://www.unixODBC.org)やiOBDC(http://www.iODBC.org:これはMac OS Xにプリインストールされています)などのODBCドライバーマネージャーとデータベースシステムにインストールされているドライバ。

Windowsは、DBMSだけでなく、Excel(.xls)スプレッドシート、 DBase(.dbf)ファイル、さらにはテキストファイル用のドライバーも提供します。(指定されたアプリケーションをインストールする必要はありません。サポートされるファイル形式は、ドライバーのバージョンによって異なります。)Excel2007およびAccess2007のバージョンがあります( http://download.microsoft.comにアクセスして、検索してください)。 for Office ODBC、AccessDatabaseEngine.exeにつながる)、「2007Officeシステムドライバ」。

于 2010-08-06T18:14:53.417 に答える
5

私はRODBCがUbuntuの本当の苦痛であることに気づきました。正しい呪文がわからないからかもしれませんが、RJDBCに切り替えて、運が良かったです。ここで説明したように

Dirkが言うように、それはあなたのExcelの問題を解決しません。Excelを作成するために、私はWriteXLSパッケージで非常に幸運に恵まれました。Ubuntuでは、セットアップが非常に簡単であることがわかりました。Perlと多くのパッケージがすでにインストールされていて、GUIパッケージマネージャーでインストールしたText::CSV_XSをインストールするだけで済みました。WriteXLSが好きな理由は、Excelファイルのさまざまなシートにデータフレームを書き込む機能です。そして今、私はあなたの質問を見ると、あなたはそれらを書くのではなく、Excelファイルを読みたいと思っていることがわかります。地獄。WriteXLSはそれを行いません。Dirkがコメントで述べたように、gdataに固執します。

CRANのgdataで、read.xls()関数が必要になります。

read.xls("//path//to/excelfile.xls", sheet = 1, verbose=FALSE, pattern, ...,
method=c("csv","tsv","tab"), perl="perl")

installXLSXsupport必要なPerlモジュールをインストールする実行が必要になる場合があります。

read.xlsは、名前ではなくシート番号を期待します。メソッドパラメータは、単に中間ファイル形式です。データにタブがある場合は、中間形式としてタブを使用しないでください。同様に、コンマとcsvについても同様です。

于 2010-08-06T20:14:36.637 に答える