Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
3
160
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
110
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
3.7k
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.9k
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
100
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.5k
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
210
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.3k
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
130
認証・認可の基本を学ぼう前編
kouyuume
0
250
JETLS.jl ─ A New Language Server for Julia
abap34
1
420
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
9
5.8k
Featured
See All Featured
KATA
mclloyd
PRO
33
15k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Designing Experiences People Love
moore
143
24k
Optimizing for Happiness
mojombo
379
70k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
A designer walks into a library…
pauljervisheath
210
24k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Agile that works and the tools we love
rasmusluckow
331
21k
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 !!!