SlideShare a Scribd company logo
Satoshi Kume
CRANパッケージの作成・投稿と
コードレビュー対応
〜GoogleImage2Arrayパッケージでの事例紹介〜
211013 @ BioPackathon
今回の内容
・ GoogleImage2Arrayパッケージの概要
・ CRANへの投稿とコードレビュー対応
・ RコードのTips:
・Exampleコードのラップ⽅法(donttest{} etc)
・サンプル実⾏時にローカル保存させない
・on.exit()
・ CRANでのコンパイルエラー
今回の内容
・ GoogleImage2Arrayパッケージの概要
・ CRANへの投稿とコードレビュー対応
・ RコードのTips:
・Exampleコードのラップ⽅法(donttest{} etc)
・サンプル実⾏時にローカル保存させない
・on.exit()
・ CRANでのコンパイルエラー
https://cran.r-project.org/web/packages/GoogleImage2Array/index.html
GoogleImage2Arrayパッケージ
主な⽤途:
・R上で使う画像取得全般
・機械学習などで使うデータ
GANとか分類問題とか
次元圧縮とか
概要:
・Google画像検索の結果をR
に取り込んで、4次元アレイ形
式に変換する
・画像の可視化
・ 4次元アレイの結合 (New)
R Array (アレイ, 配列) とは??
R Array/配列とは、⾏列を多次元に拡張したもの。
Matrix/⾏列: 2次元のデータ構造
Array/配列: 3次元、4次元、それ以上の次元のデータ構造。
http://venus.ifca.unican.es/Rintro/dataStruct.html
要素
ex. numeric
多次元テンソルの⼤まかな考え⽅
https://www.javatpoint.com/pytorch-tensors
要素
ex. numeric
2D画像の扱いは、
2D テンソル ??
2D画像の扱いは、
・横ピクセル数
・縦ピクセル数
・チャネル(RGBなど原色数)
・画像の枚数
GoogleImage2Arrayパッケージでできること
Google画像検索をすると
画像のサムネイルが表⽰される
検索
R アレイ/テンソル
(20 images/query)
画像取得&変換
R上での可視化
(ラスター表⽰)
20 images以上取得したい場合
RSeleniumパッケッージを使うことに
実⾏コード
アレイの取得: GoogleImage2array関数
(20, 幅ピクセル数, ⾼さピクセル数, チャネル数)
アレイの結合
(1次元⽅向で)
アレイの可視化: display.array関数
GoogleImage2array関数の中⾝をちょっと説明
https://github.com/kumeS/GoogleImage2Array/blob/main/R/GoogleImage2array.R
URL⽣成 + %エンコード
検索⾔語の指定
Webスクレイピング
+ 画像URL取得
画像処理、アレイへの変換
などの処理と続く
関数の引数
wh: 縦横ピクセル数
Col: カラー(T) or グレイ(F)
Save: ローカル保存の有無
gl: 検索エリア指定
CRANへの投稿
https://cran.r-project.org/submit.html
必要事項の記載
gzファイルを選択
ここをクリック
CRANへの投稿(準備)について、詳しくは
を参照のこと
CRANから本⼈確認メールが届く
ココをクリック
次に、投稿完了のメールが届く
次に、CRANでのコンパイルが⾛る
OKなら、レビューが始まる
約11時間後、、コードレビュー結果が返ってくる
ハヤっ!!
WebサービスのURLを概要
に⼊れてください。
コメントは4点
Exampleは、dontrun{}ではなく、
donttest{}を使ってください。
テストの途中ファイルをローカ
ルに保存しないでください。
ユーザーの設定を変えない
でください。この場合、
on.exit()を使ってください。
修正して再投稿 〜投稿時と同じところで〜
https://cran.r-project.org/submit.html
ココにレスポンス・
修正点を書く。
論⽂のレスポンスレターというより、
カジュアルな返事でOK!!
次の⽇にOKメールが届く
同⽇中には、CRANに登録されていた。
今回の内容
・ GoogleImage2Arrayパッケージの概要
・ CRANへの投稿とコードレビュー対応
・ RコードのTips:
・Exampleコードのラップ⽅法(donttest{} etc)
・サンプル実⾏時にローカル保存させない
・on.exit()
・ CRANでのコンパイルエラー
RコードのTips: Exampleコードのラップ⽅法/例外ルール
https://runebook.dev/ja/docs/r/library/utils/html/example
コードが本当に実⾏でき
ない時だけ
# Not run: ⾏を追記
(1)実⾏が5秒以上かかる
(2)途中でデータダウン
ロードを実⾏する
実⾏が正常かつ5秒未満なら、unwrapする
結果として、サンプルコードは、
donttestか、unwrapを推奨
RコードのTips: ローカル保存させない
https://github.com/kumeS/GoogleImage2Array/blob/main/R/GoogleImage2array.R
デフォルト値が「Save=TRUE 」
になっていたのを突っ込まれる。
引数
wh: 縦横ピクセル数
Col: カラー(T) or グレイ(F)
Save: ローカル保存の有無
gl: 検索エリア指定
どうしても保存したい場合は、
tempdir()で作成される⼀時ディレ
クトリに出⼒するようにとのこと。
RコードのTips: on.exit()を使って、ユーザーオプション
(作図の設定 etc)を元に戻すこと。
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/31.html
RコードのTips: CRANでのコンパイルエラー
CRANでは、毎回、コンパイル環境が違う?
1つくらいなら、Errorがでててもあまり気にしなくてもよそさそう。
RコードのTips: CRANでのコンパイルエラー
CRANでは、毎回、コンパイル環境が違う?
1つくらいなら、Errorがでててもあまり気にしなくてもよそさそう。
まとめ
・ パッケージ作成 2⽇、投稿・レビュー・再投稿1.5⽇
=> 今回、コードの下書きがあったので、
パッケージ化から3⽇程度で、CRANに採択された。
・ コードレビューは、コードの中⾝というより
CRANポリシーに合っているかどうかが審査される。
・ 普段のデータ解析⽤途では、気にしてないところを突っ込まれる

More Related Content

PDF
OSS Product feat. Gradle
PDF
Jjug 20140430 gradle_basic
PPTX
Gradle入門
PDF
Androidアプリのリバースエンジニアリング
PDF
Gws 20141024 gradle_intro
PDF
Spring in-summer-gradle-hands on-withanswers
PDF
Groovy base gradle_20130309
PDF
Gradle handson
OSS Product feat. Gradle
Jjug 20140430 gradle_basic
Gradle入門
Androidアプリのリバースエンジニアリング
Gws 20141024 gradle_intro
Spring in-summer-gradle-hands on-withanswers
Groovy base gradle_20130309
Gradle handson

What's hot (9)

PPTX
Jjug 20140430 gradle_advanced
PDF
Laravelのパッケージのテストに便利なパッケージ
PDF
Introduce Groovy 2.3 trait
PDF
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
PDF
Gradleどうでしょう
PDF
システム開発を前進させるためのGradle導入法
PPT
Maven2 プラグイン入門
PDF
Spekではじめるユニットテスト
PDF
Markup Template Engine introduced Groovy 2.3
Jjug 20140430 gradle_advanced
Laravelのパッケージのテストに便利なパッケージ
Introduce Groovy 2.3 trait
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
Gradleどうでしょう
システム開発を前進させるためのGradle導入法
Maven2 プラグイン入門
Spekではじめるユニットテスト
Markup Template Engine introduced Groovy 2.3
Ad

Similar to CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon (20)

PDF
Introduce build in shrinker
PDF
明日から使えるgradle
PDF
こんな辛いテストはいやだ
PDF
OCaml でデータ分析
PDF
React Native GUIDE
PDF
Haikara
PDF
Building Static Website With Github And Jekyll
PDF
20120421中国gtug
PDF
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
PDF
Vagrant で作る PHP 開発環境 [実践編]
PDF
Play framework 2.0のおすすめと1.2からのアップグレード
PDF
GoBGP活用によるSD-WANプラクティス
PDF
Cryogenでサイトつくろーじぇん
PDF
Playbay Play 2.0 plugin イロハのイ
PDF
Djangoとweb2pyをapacheに組込む
PPTX
RgGen ご紹介
PDF
Pythonで検索エンジン2
ODP
Scalaで始める競技プログラミング
PDF
初めてのPadrino
PDF
Scalaで実装するGC
Introduce build in shrinker
明日から使えるgradle
こんな辛いテストはいやだ
OCaml でデータ分析
React Native GUIDE
Haikara
Building Static Website With Github And Jekyll
20120421中国gtug
Retina対応 CSSスプライトを自動化しよう sprity版(東区フロントエンド勉強会 2015年 第2回) 補足資料
Vagrant で作る PHP 開発環境 [実践編]
Play framework 2.0のおすすめと1.2からのアップグレード
GoBGP活用によるSD-WANプラクティス
Cryogenでサイトつくろーじぇん
Playbay Play 2.0 plugin イロハのイ
Djangoとweb2pyをapacheに組込む
RgGen ご紹介
Pythonで検索エンジン2
Scalaで始める競技プログラミング
初めてのPadrino
Scalaで実装するGC
Ad

More from Satoshi Kume (20)

PDF
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
PDF
230517_chatGPT_v01.pdf
PDF
20230314_R-universe.pdf
PPTX
211204_japan_r_v01
PDF
211104 Bioc Asia workshop
PDF
Exchange program 071128
PDF
D3 slides (Satoshi Kume)
PDF
AI学会 合同研究会2020 発表スライド (201120)
PDF
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
PDF
Openlink Virtuoso v01
PPTX
201209 Biopackathon 12th
PDF
201126 Wikidata クラス階層 SPARQL検索
PPTX
201111_biopackathon_11th_v00pre
PPTX
200612_BioPackathon_ss
PDF
How_to_install_OpenCV_ver1.0
PDF
CentOS_slide_ver1.0
PPTX
R_note_ODE_ver1.0
PDF
Mac_Terminal_ver1.0
PDF
R_note_02_ver1.0
PDF
R note 01_ver1.2
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
230517_chatGPT_v01.pdf
20230314_R-universe.pdf
211204_japan_r_v01
211104 Bioc Asia workshop
Exchange program 071128
D3 slides (Satoshi Kume)
AI学会 合同研究会2020 発表スライド (201120)
210609 Biopackthon: BioImageDbs for ExperimentalHub (修正版)
Openlink Virtuoso v01
201209 Biopackathon 12th
201126 Wikidata クラス階層 SPARQL検索
201111_biopackathon_11th_v00pre
200612_BioPackathon_ss
How_to_install_OpenCV_ver1.0
CentOS_slide_ver1.0
R_note_ODE_ver1.0
Mac_Terminal_ver1.0
R_note_02_ver1.0
R note 01_ver1.2

CRANパッケージの作成・投稿とコードレビュー対応 〜 GoogleImage2Array パッケージでの事例紹介 〜 @ BioPackathon