Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Reticulate_and_RStudio.pdf
Search
t_usausausa
October 20, 2018
Programming
0
660
Reticulate_and_RStudio.pdf
t_usausausa
October 20, 2018
Tweet
Share
More Decks by t_usausausa
See All by t_usausausa
tsibbleとtibbletimeの紹介
t_usausausa
0
3k
Other Decks in Programming
See All in Programming
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
170
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
1
360
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
570
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
2
490
Leading Effective Engineering Teams in the AI Era
addyosmani
6
440
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
400
3年ぶりにコードを書いた元CTOが Claude Codeと30分でMVPを作った話
maikokojima
0
290
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
0
280
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
340
その面倒な作業、「Dart」にやらせませんか? Flutter開発者のための業務効率化
yordgenome03
1
130
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
32k
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
3.4k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
The Language of Interfaces
destraynor
162
25k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
For a Future-Friendly Web
brad_frost
180
9.9k
Agile that works and the tools we love
rasmusluckow
331
21k
Side Projects
sachag
455
43k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Building an army of robots
kneath
306
46k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
How STYLIGHT went responsive
nonsquared
100
5.8k
Transcript
RETICULATEパッケージと RSTUDIO TokyoR#73 t_usausausa
自己紹介 ▪ twitter : t_usausausa ▪ お仕事 : 受託会社のDS ->
事業会社のDS(Pairsの中の人) ▪ 言語 : SQL, R, Python ▪ 最近のメイン業務 : データ分析基盤設計、開発
お詫び ▪ Pairsの分析的な内容ではありません – それは別の機会に ▪ 当初はreticulateからpytorchを呼び出す的な内容でしたが、それよりもRStudioに ついて発表すべきと思い切り替えました – 実際呼び出して予測するところまでは確認済みです
検証環境 ▪ Windows10 (Windows subsystem for Linux) ▪ R 3.5.1
▪ RStudio 1.2 Previrew版 ▪ reticulate 1.10
RStudio 1.2の特徴の1つ ▪ R以外の言語のサポート – Python – C/C++ – SQL
– Stan
reticulate is 何 ▪ RStudio社の作ったRからPythonを呼び出すパッケージ – 「reticulated python」でアミメニシキヘビらしい ▪ これまでにもRからPythonを呼び出すライブラリはあったが、モダンな開発環境
に合わせて使いやすくなっている
reticulateとPythonInRの違い reticulate PythonInR リリース時期 2017/03/14 2015/07/09 仮想環境 利用可能 利用不可能(デフォルトパス のPython利用)
記述方法 後述 関数のパラメータにPython コード埋め込み R <-> Python間でのデータ受 け渡し 受け渡し用クラス(R : pyクラ ス, Python : rクラス) 関数実行の戻り値 CRAN https://cran.r- project.org/web/packages/reti culate/index.html https://cran.r- project.org/web/packages/Pyt honInR/index.html
reticulateの使い方 ▪ reticulateはinstallするだけでお手軽に使え る ▪ 更に仮想環境を指定することもできる – use_python() : 利用するpythonのパス
を指定 – use_virtualenv() : 利用するvirtualenv で作った仮想環境を指定 – use_condaenv() :利用するanacondaで 作った仮想環境を指定 install.packages("reticulate") library(reticulate) # anacondaで作った仮想環境を参照する use_condaenv("reticulate", required = TRUE) # 環境の確認 py_config()
4種類の記述方法 1. PythonモジュールをRのクラスにする ▪ 任意のPythonモジュールをRのクラスとして扱うことが可能 – 特定の関数を使いたいときに便利 – クラス内において「.」でメソッドチェーンを行う処理には向かない
4種類の記述方法 2. Pythonスクリプト呼び出し ▪ Pythonのソースコードを読み込んで、実行、またはそこに定義されている関数をR の関数として読み込むことができる – すでにPythonのモジュールがあり、それをRで利用したい人向け
4種類の記述方法 3. インタラクティブ起動 ▪ repl_python()と実行するとRのコン ソールからPythonのコンソールへと 切り替わる – Pythonコードをそのまま実行可 能
– 現状、RStudio側に問題があるた め結構使いにくいところがある
4種類の記述方法 4. R Markdownの記述を実行する ▪ R notebookのチャンクにpythonを指定して記述 & 実行 –
Pythonコードをそのまま実行可能 – 現状、RStudio側に問題があるため大変使いにくいところがある
これだけ見てるともうPython書くの もRStudioでいいじゃんって気になり ませんか…?
reticulateとRStudioの連携で駄目な点 1. Pythonスクリプトをコンソールに送れ ない ▪ インタラクティブモード起動時、pyファイルに書かれているコードをコンソール に送って実行してもらえない – 逆にRファイルに書いてあるPythonコードは送れる –
RStudioの仕様で、コンソールに送れるコードはR関連のファイルに記述され ているものだけに限られるから…?
reticulateとRStudioの連携で駄目な点 2. チャンクを変えるとPythonのセッショ ンがリセットされる ▪ R Markdown形式での記述の場合、Rで はチャンクを変えても変数が保存さ れるが、Pythonはなぜか保存されない –
importなどもリセットされるの でセッションが異なる模様 – 1つのチャンク内で完結するよう にコードを書けばよいが、それは ナンセンス
reticulateとRStudioの連携で駄目な点 3. チャンク間での変数受け渡し不可能 ▪ reticulateはpythonならばrクラス、Rならばpyクラスを通じて変数の受け渡しが可 能となっているが、チャンクを利用した記述ではこれらの変数は利用できない – 前述のセッションリセットにも絡む問題…?
というわけでまだRStudioをPythonの エディタとして利用するのは早計な のでは???
逆にこれらの問題が解決すれば RStudioは素晴らしいエディタになる はず…!!!
enjoy !!!