More than 1 year has passed since last update.

RStudioユーザーのみなさんこんにちは。RStudioユーザーでない方もこんばんは。メリークリスマス🎄🎅!!!

RStudioユーザーであれば誰しもRStudioを意のままに操ってみたい、そういう気持ちを抱くことがあると思いますが、実はその願望、とあるパッケージを使うと簡単に実現できます、という話をします。よろしくお願いします。

勿体ぶっても仕方がないので、早速件のパッケージを読み込みます。{rstudioapi}パッケージは、RStudioの情報やRStudio内部の処理を操作するための関数を備えています。開発メンバーはRStudio社をはじめ、Hadley WickhamやJJ Allaire、Kevin Usheyと安心の面子です。

library(rstudioapi)

ちなみに、このパッケージの概要や一部の関数についてはyutannihilationさんがブログで紹介してくれています。そちらもご覧ください。

何ができるのか

肝心な話です。有益なものとそうでもないものあります。価値を見いだすのは人それぞれの価値観です。私が有益〜っと思ったものだけを紹介するので、きちんと知りたい人はGitHubのリポジトリから探してください。それでは。

Rの関数をRStudioで実行する関数

任意のRコードを引数に渡して、コードを実行する(しないという選択もできる)関数です。何かに役立ちそうですが、いいアイデアがないですね。

sendToConsole(code = "print('hello')")

エディタ情報

editor-information()という関数を使って、エディタおよびコンソールに関する情報を得ることができます。RStudio内部で使われているファイルのIDや、ファイルサイズが表示されます。そういえばこの機能を利用してパッケージを作ったのですが、開発を放置していました。来年になったらメンテナンスしたいと思います。

# 現在アクティブ(カーソルが有効)なエディタあるいはコンソールの情報を返す
getActiveDocumentContext()
# Document Context: 
# - id:        '8F71A52B'
# - path:      '~/Desktop/Untitled.Rmd'
# - contents:  <60 rows>
# Document Selection:
# - [34, 1] -- [34, 1]: ''

# ソースの情報
getSourceEditorContext()
# Document Context: 
# - id:        '8F71A52B'
# - path:      '~/Desktop/Untitled.Rmd'
# - contents:  <60 rows>
# Document Selection:
# - [37, 1] -- [37, 1]: ''

# コンソールの情報
getConsoleEditorContext()
# Document Context: 
# - id:        '#console'
# - path:      ''
# - contents:  <1 rows>
# Document Selection:
# - [1, 1] -- [1, 1]: ''

「ソースコードはどこに書いてあるの?」
「RStudioのUntitled4タブだよ!」
というやりとりがあった時も、IDさえあれば安心(?)ですね。

Rプロジェクトのパス

RStudioの右上にあるやつですね。プロジェクトを使っていないと、Rプロジェクト警察の取り締まりに合うので気をつけましょう。

getActiveProject()
# NULL
getActiveProject()
# [1] "/Users/uri/git/rpkg_showcase"

RStudioのバージョン

あれ、これ最新版だっけ?メニューバーからバージョンを表示するよりもあるいは楽にバージョンを表示できます。

getVersion()
# [1] ‘1.1.20’

任意のファイルを任意の位置で開く

file引数に与えたファイルを開きます。line引数やcolumn引数を使って、ファイル中の特定の箇所にカーソルを置いた状態にすることもできます。

navigateToFile()

おー、ってなるやつ(パスワードの入力画面)

でっていう。

askForPassword("パスワードを入力してください")

関連

Macユーザーの人はこれを使うとRStudio外部からRStudioにコードを送れるので便利です

http://uribo.hatenablog.com/entry/2016/01/08/184252

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.