本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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 = "保存場所を選択"), sep = "", collapse ="")),
  "/", Sys.Date())
#フォルダを作成
dir.create(example_project, recursive = TRUE)
#作成したフォルダを作業フォルダにする
setwd(example_project)
#ディフォルトのパッケージライブラリのパスを取得
oldwd <- .libPaths()

#プロジェクトに追加するパッケージを指定
#"library(パッケージ名)"で記述していきます
#例:cat("library(パッケージ1)", "library(パッケージ2)", 
#sep = "\n", file = "checkpoint_example_code.R")
#紹介コマンドはtwitteRの例です
cat("library(twitteR)",
    sep = "\n", file = "checkpoint_example_code.R")

#2014/9/17以降の特定の日を指定して
#その日のパッケージを導入:checkpointコマンド
#コマンドを実行するとフォルダを作成するか聞かれます"y"を入力してください
#日はYYYY-MM-DDで入力
#twitteRVer1.1.8を紹介した日を指定
checkpoint("2015-06-09", checkpointLocation = example_project)

###試しにtwitteRを実行#####
#ライブラリの読み込み
library("twitteR")
#情報の入力
consumerKey <- "Consumer Key (API Key)を入力"
consumerSecret <- "Consumer Secret (API Secret)を入力"
accessToken <- "Access Tokenを入力"
accessSecret <- "Access Token Secretを入力"

#処理の準備
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

#タイムラインを取得
userTimeline(user = "KaradaGood", n = 100)
[[1]]
[1] "KaradaGood: 2015/09/15 公開\nRでお遊び:シャーロット第12話予告編「約束」の感想とカラーパレット http://t.co/xqSxXCGwkA"

[[2]]
[1] "KaradaGood: 2015/09/15 公開\nRで解析:視認性の高いカラーパレットの1つです。「viridis」パッケージの紹介 http://t.co/EQm0gP08Qc"
#以下省略
########

#パッケージライブラリのパスを取得
GetLibPathes <- .libPaths()
#参考_取得したパッケージライブラリを使用する場合は
#.libPaths(GetLibPathesのライブラリを指定)

#リンクの解除
unlink(example_project)

#ディフォルトのライブラリに戻す
.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.