Rで解析:パッケージのスナップショット!「checkpoint」パッケージ

パッケージの紹介時には問題なく動作するのに、しばらく経つと依存パッケージが更新し動かない。そんな問い合わせを受けることがあります。問い合わせるのが面倒でパッケージの使用を諦めていた方にオススメです。

問題を起こしやすい「twitteR」パッケージを例に紹介します。最新バージョンの1世代前1.1.8です。

本パッケージはR商業化で成功している「Revolution Analitics社」が運営している、checkpoint-serverのデータを利用します。パッケージのスナップショットは2014年9月17日以降を利用できます。

参考までに、Revolution Analitics社はRを拡張し、マルチスレッド、ビックデータ解析に向いたRevolution Rをリリースしています。なお、オープンソース版もあります。

Revolution Analitics
http://www.revolutionanalytics.com/
https://mran.revolutionanalytics.com/
日本語サイト
http://www.r-analytics.jp/

パッケージのバージョンは1.0.2。実行コマンドはR version 4.2.2で確認しています。

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("checkpoint")

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。checkpointコマンドで利用する日は、記事公開日などを利用ください。

#パッケージの読み込み
library("checkpoint")

#プロジェクトの保存場所を指定
library("tcltk")
example_project <- paste0(paste(as.character(
  tkchooseDirectory(title = "&#20445;&#23384;&#22580;&#25152;&#12434;&#36984;&#25246;"), sep = "", collapse ="")),
  "/", Sys.Date())
#&#12501;&#12457;&#12523;&#12480;&#12434;&#20316;&#25104;
dir.create(example_project, recursive = TRUE)
#&#20316;&#25104;&#12375;&#12383;&#12501;&#12457;&#12523;&#12480;&#12434;&#20316;&#26989;&#12501;&#12457;&#12523;&#12480;&#12395;&#12377;&#12427;
setwd(example_project)
#&#12487;&#12451;&#12501;&#12457;&#12523;&#12488;&#12398;&#12497;&#12483;&#12465;&#12540;&#12472;&#12521;&#12452;&#12502;&#12521;&#12522;&#12398;&#12497;&#12473;&#12434;&#21462;&#24471;
oldwd <- .libPaths()

#&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;&#12395;&#36861;&#21152;&#12377;&#12427;&#12497;&#12483;&#12465;&#12540;&#12472;&#12434;&#25351;&#23450;
#"library(&#12497;&#12483;&#12465;&#12540;&#12472;&#21517;)"&#12391;&#35352;&#36848;&#12375;&#12390;&#12356;&#12365;&#12414;&#12377;
#&#20363;:cat("library(&#12497;&#12483;&#12465;&#12540;&#12472;1)", "library(&#12497;&#12483;&#12465;&#12540;&#12472;2)", 
#sep = "\n", file = "checkpoint_example_code.R")
#&#32057;&#20171;&#12467;&#12510;&#12531;&#12489;&#12399;twitteR&#12398;&#20363;&#12391;&#12377;
cat("library(twitteR)",
    sep = "\n", file = "checkpoint_example_code.R")

#2014/9/17&#20197;&#38477;&#12398;&#29305;&#23450;&#12398;&#26085;&#12434;&#25351;&#23450;&#12375;&#12390;
#&#12381;&#12398;&#26085;&#12398;&#12497;&#12483;&#12465;&#12540;&#12472;&#12434;&#23566;&#20837;:checkpoint&#12467;&#12510;&#12531;&#12489;
#&#12467;&#12510;&#12531;&#12489;&#12434;&#23455;&#34892;&#12377;&#12427;&#12392;&#12501;&#12457;&#12523;&#12480;&#12434;&#20316;&#25104;&#12377;&#12427;&#12363;&#32862;&#12363;&#12428;&#12414;&#12377;"y"&#12434;&#20837;&#21147;&#12375;&#12390;&#12367;&#12384;&#12373;&#12356;
#&#26085;&#12399;YYYY-MM-DD&#12391;&#20837;&#21147;
#twitteRVer1.1.8&#12434;&#32057;&#20171;&#12375;&#12383;&#26085;&#12434;&#25351;&#23450;
checkpoint("2015-06-09", checkpointLocation = example_project)

###&#35430;&#12375;&#12395;twitteR&#12434;&#23455;&#34892;#####
#&#12521;&#12452;&#12502;&#12521;&#12522;&#12398;&#35501;&#12415;&#36796;&#12415;
library("twitteR")
#&#24773;&#22577;&#12398;&#20837;&#21147;
consumerKey <- "Consumer Key (API Key)&#12434;&#20837;&#21147;"
consumerSecret <- "Consumer Secret (API Secret)&#12434;&#20837;&#21147;"
accessToken <- "Access Token&#12434;&#20837;&#21147;"
accessSecret <- "Access Token Secret&#12434;&#20837;&#21147;"

#&#20966;&#29702;&#12398;&#28310;&#20633;
setup_twitter_oauth(consumerKey, consumerSecret, accessToken, accessSecret)
[1] "Using direct authentication"
Use a local file to cache OAuth access credentials between R sessions?
  1: Yes
2: No

Selection: 1
Adding .httr-oauth to .gitignore

#&#12479;&#12452;&#12512;&#12521;&#12452;&#12531;&#12434;&#21462;&#24471;
userTimeline(user = "KaradaGood", n = 100)
[[1]]
[1] "KaradaGood: 2015/09/15 &#20844;&#38283;\nR&#12391;&#12362;&#36938;&#12403;&#65306;&#12471;&#12515;&#12540;&#12525;&#12483;&#12488;&#31532;12&#35441;&#20104;&#21578;&#32232;&#12300;&#32004;&#26463;&#12301;&#12398;&#24863;&#24819;&#12392;&#12459;&#12521;&#12540;&#12497;&#12524;&#12483;&#12488; http://t.co/xqSxXCGwkA"

[[2]]
[1] "KaradaGood: 2015/09/15 &#20844;&#38283;\nR&#12391;&#35299;&#26512;&#65306;&#35222;&#35469;&#24615;&#12398;&#39640;&#12356;&#12459;&#12521;&#12540;&#12497;&#12524;&#12483;&#12488;&#12398;&#65297;&#12388;&#12391;&#12377;&#12290;&#12300;viridis&#12301;&#12497;&#12483;&#12465;&#12540;&#12472;&#12398;&#32057;&#20171; http://t.co/EQm0gP08Qc"
#&#20197;&#19979;&#30465;&#30053;
########

#&#12497;&#12483;&#12465;&#12540;&#12472;&#12521;&#12452;&#12502;&#12521;&#12522;&#12398;&#12497;&#12473;&#12434;&#21462;&#24471;
GetLibPathes <- .libPaths()
#&#21442;&#32771;_&#21462;&#24471;&#12375;&#12383;&#12497;&#12483;&#12465;&#12540;&#12472;&#12521;&#12452;&#12502;&#12521;&#12522;&#12434;&#20351;&#29992;&#12377;&#12427;&#22580;&#21512;&#12399;
#.libPaths(GetLibPathes&#12398;&#12521;&#12452;&#12502;&#12521;&#12522;&#12434;&#25351;&#23450;)

#&#12522;&#12531;&#12463;&#12398;&#35299;&#38500;
unlink(example_project)

#&#12487;&#12451;&#12501;&#12457;&#12523;&#12488;&#12398;&#12521;&#12452;&#12502;&#12521;&#12522;&#12395;&#25147;&#12377;
.libPaths(oldwd)

実行環境

twitteRを動かすのに最低限のパッケージのみライブラリにインストールされています。

スクリーンショット 2015-09-16 6.29.20

少しでも、あなたの解析が楽になりますように!!

Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.
タイトルとURLをコピーしました