[〜#〜] rodbc [〜#〜] ドキュメントはそれが可能であることを示唆していますが、Microsoft Access(新しい.accdb
形式)ファイルからデータを読み取る方法がわかりません。このパッケージをRに(Debian GNU/Linux上で)。ビネットはドライバーについて説明していますが、インストールされているドライバーを確認する方法がよくわかりません。特に、それらの.accdb
ファイルにアクセスするためのドライバーがインストールされているかどうかはわかりません。
.accdb
ファイルからデータを読み取るためにどのコードを使用しますか?また、使用しているプラットフォームと、特別なドライバーをインストールする必要があるかどうかを示してください。
リンクしたページのタイトルRODBC:ODBCデータベースアクセス、誤解を招く可能性があります。アクセスは意味しませんMS Access;そのタイトルでは、アクセスは接続を意味します。RODBCはRのODBCマネージャーです。RとODBCドライバー)の間の通信を提供するメディエーターとして機能します。ターゲットデータベースの場合。したがって、GNU/Linuxの場合でも、MSAccessデータベースファイル用のODBCドライバーが必要です... RODBCは提供していません。
ただし、無料の(自由やビールなどの)MS Access ODBC Linux用ドライバー。Easysoftは one を販売していますが、安くはありません) 。他のベンダーからの提供もあるかもしれません;私は見ていません。
Windowsマシンを使用して、ACCDBをRが使用できる形式にエクスポートする方が簡単な場合があります。または、Linuxの代わりに WindowsではR を実行します。
2007年以降のMicrosoftAccessファイル(.accdb)をRにインポートするには、RODBC
パッケージを使用できます。
John Doeのコンピューターのデスクトップに保存されている、「bar」と「bin」のテーブルを持つ「foo.accdb」という.accdbファイルの場合:
library(RODBC) #loads the RODBC package
dta <- odbcConnectAccess2007("C:/Users/JohnDoe/Desktop/foo.accdb") #specifies the file path
df1 <- sqlFetch(dta, "bar") #loads the table called 'bar' in the original Access file
df2 <- sqlFetch(dta, "bin") #loads the table called 'bin' in the original Access file
AccessをODBCインターフェイスに接続するには、ドライバが必要です。Accessがインストールされている場合は、これらがシステム上にあるはずです。インストールされていない場合は、 Accessデータベースエンジン をダウンロードしてください。次に、Microsoftからデータ接続を作成しますODBC(64ビットWindowsを実行している場合は32ビット_c:\windows\sysWOW64\odbcad32.exe
_を実行する必要がある場合があります)。この方法は機能しないことに注意してください。 GNU/Linux上。以下の@HansUpで説明されているように、ランタイムはWindowsのみです。
コードに関しては、おそらくodbcConnect(dsn, uid = "", pwd = "", ...)
から始めるでしょう、そしてドキュメントは詳細を助けることができます。
ODBCは、さまざまなブリックを接続する「プラグアンドプレイ」システムです。
RODBCを使用すると、ODBCプロバイダーからRに何かを取得できます。まだ必要なのは、問題のデータベースシステムの(より優れたWordがないため)ODBCエクスポートドライバーです。これが必要です。あなたのOS上で---だから私はAccess-into-Linuxの組み合わせでは運がないと思います。Windowsのみ。
人々はFreeTDSドライバー(Sybaseの基盤となるTDSプロトコル用および初期ライセンス経由でMS-SQL)を使用してSQL Serverにアクセスすることができましたが、それを実現するための戦いは通常あります。
> library(RODBC)
> db<-file.path("student.accdb")
> channel<-odbcConnectAccess2007(db)
> data<-sqlFetch(channel,"stud")
> data
ID Name M1 M2 M3 M4 M5 Result
1 7 Radha 85 65 92 50 62 Pass
2 8 Reka 75 85 96 75 85 Pass
私のために働いた最良の方法
#Package
library(RODBC)
#Defining the path
datab<-file.path("Main_File.accdb")
channel<-odbcConnectAccess2007(datab)
#reading the individual files inside the Main
table<-sqlFetch(Channel,"File_1")
これにより、Main_File内の「File_1」からデータがフェッチされます。
しかし、上記のコードはUTFエンコーディングをサポートしていませんでした。
直接アクセスする代わりに、MSAccessからのデータエクスポートを容易にすることもできます。少なくとも最新のMSAccessでは、さまざまなエクスポート手順を保存できます。そうすれば、さまざまなクエリ/テーブルのエクスポートをかなりすばやく実行できます。
これで質問に答えられないことはわかっていますが、RODBCを実行しない場合は回避策になる可能性があります。