Rで統計解析しようと思っていた元ネタをmongodbに格納していて、今まではrubyでmongodbに突っ込んで、
Rにデータを渡すのに、CSVファイルをrubyで作って、みたいなことをやっていた。が、
MongoDBの集計機能が便利過ぎて泣けてくるお話し
を読んで、
rmongodb
というRのパッケージの存在を知ったので、インストールしてみた。
rmongodbのインストール
sudoでRを起動し、install.packagesするだけ。簡単。
> install.packages("rmongodb")
パッケージを ‘/usr/local/lib/R/site-library’ 中にインストールします
(‘lib’ が指定されていないので)
URL 'http://cran.ism.ac.jp/src/contrib/rmongodb_1.0.5.tar.gz' を試しています
Content type 'application/x-gzip' length 112861 bytes (110 Kb)
開かれた URL
==================================================
downloaded 110 Kb
* installing *source* package ‘rmongodb’ ...
** パッケージ ‘rmongodb’ の解凍およびMD5サムの検証に成功しました
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c api.c -o api.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c api_bson.c -o api_bson.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c api_gridfs.c -o api_gridfs.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c api_mongo.c -o api_mongo.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c bson.c -o bson.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c encoding.c -o encoding.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c env.c -o env.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c gridfs.c -o gridfs.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c md5.c -o md5.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c mongo.c -o mongo.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c numbers.c -o numbers.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c symbols.c -o symbols.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -D_MONGO_USE_GETADDRINFO -DR_SAFETY_NET -fpic -O2 -pipe -g -c utility.c -o utility.o
gcc -std=gnu99 -shared -o rmongodb.so api.o api_bson.o api_gridfs.o api_mongo.o bson.o encoding.o env.o gridfs.o md5.o mongo.o numbers.o symbols.o utility.o -L/usr/lib/R/lib -lR
以下にインストール中: /usr/local/lib/R/site-library/rmongodb/libs
** R
** demo
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
rmongodb package (mongo-r-driver) loaded
Use 'help("mongo")' to get started.
* DONE (rmongodb)
ダウンロードされたパッケージは、以下にあります
‘/tmp/RtmpDFyqNs/downloaded_packages’
>
>
Rからmongodbにつないでみる。
> library(rmongodb)
rmongodb package (mongo-r-driver) loaded
Use 'help("mongo")' to get started.
> mongo <- mongo.create()
> mongo.is.connected(mongo)
[1] TRUE
> mongo.count(mongo, 'ドキュメント名.コレクション名')
[1] 3713
>
まだ、詳しく使い方をわかっていないけど、上記でlocalhostのmongodbに接続し、
指定したドキュメントの指定したコレクションの件数を取得することができた。