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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
3.1k
Other Decks in Programming
See All in Programming
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
290
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
340
Claude Code Skill入門
mayahoney
0
390
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
510
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
140
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
180
文字コードの話
qnighy
44
17k
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
220
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.3k
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.8k
TipKitTips
ktcryomm
0
170
SourceGeneratorのマーカー属性問題について
htkym
0
200
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Visualization
eitanlees
150
17k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
76
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.4k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
What's in a price? How to price your products and services
michaelherold
247
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How to make the Groovebox
asonas
2
2k
HDC tutorial
michielstock
1
540
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
180
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
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 !!!