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

Rの解析に役に立つ記事
スポンサーリンク

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

問題を起こしやすい「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

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

タイトルとURLをコピーしました