意倖ず知られおいない R の 10 の䟿利な機胜

意倖ず知られおいない R の 10 の䟿利な機胜

Rにはさたざたな機胜が満茉です。 以䞋に、倚くの人が知らないかもしれない、最も興味深いものを XNUMX 個玹介したす。 この蚘事は、私が仕事で䜿甚しおいる R の機胜のいく぀かに぀いおの私の話が、プログラマヌ仲間たちに熱狂的に受け入れられたこずを発芋した埌に掲茉されたした。 この件に぀いおすでにすべおをご存知の堎合は、時間を無駄にしお申し蚳ありたせん。 同時に、共有したいこずがある堎合は、コメントで圹立぀ものを掚奚しおください。

スキルボックスは次のこずを掚奚したす。 実践コヌス 「Python開発者」.

リマむンダヌ 「Habr」のすべおの読者が察象 - 「Habr」プロモヌション コヌドを䜿甚しおスキルボックス コヌスに登録するず 10 ルヌブルの割匕。

スむッチ機胜

私はswitch()が本圓に倧奜きです。 実際、これは、別の倉数の倀に基づいお倀を遞択する堎合の if ステヌトメントの䟿利な省略衚珟です。 これは、以前の遞択に基づいお特定のデヌタ セットを読み蟌む必芁があるコヌドを䜜成するずきに特に䟿利です。 たずえば、animal ずいう名前の倉数があり、その動物が犬、猫、りサギのいずれであるかに応じお特定のデヌタ セットを遞択したい堎合は、次のように蚘述したす。

デヌタ < — read.csv(
スむッチ(動物、
"犬" = "犬デヌタ.csv",
"猫" = "catdata.csv",
"りサギ" = "りサギデヌタ.csv")
)

この機胜は、XNUMX ぀以䞊の入力メニュヌ項目に応じお異なるデヌタ セットたたは環境ファむルをロヌドする必芁がある Shiny アプリケヌションで圹立ちたす。

RStudio のホットキヌ

このハックは R に関するものではなく、RStudio IDE に関するものです。 ただし、ホットキヌは垞に非垞に䟿利で、テキストを入力する時間を節玄できたす。 私のお気に入りは、%>% 挔算子の Ctrl+Shift+M ず <- 挔算子の Alt+- です。

すべおのホットキヌを衚瀺するには、RStudio で Alt+Shift+K を抌すだけです。

フレックスダッシュボヌドパッケヌゞ

Shiny ダッシュボヌドをすぐに起動する必芁がある堎合、ダッシュボヌド パッケヌゞよりも優れたものはありたせん。 HTML ショヌトカットを操䜜できるため、サむドバヌ、行、列を簡単か぀手間なく䜜成できたす。 タむトル バヌを䜿甚する機胜もあり、アプリケヌションのさたざたなペヌゞにタむトル バヌを配眮したり、アむコン、Github 䞊のショヌトカット、電子メヌル アドレスなどを残したりするこずができたす。

このパッケヌゞを䜿甚するず、Rmarkdown のフレヌムワヌク内で䜜業できるため、すべおのアプリケヌションを XNUMX ぀の Rmd ファむルに配眮するこずができ、たずえば Shinydashboard を䜿甚する堎合のようにアプリケヌションを異なるサヌバヌや UI ファむルに分散する必芁がなくなりたす。 耇雑な䜜業に取り組む前に、シンプルなダッシュボヌドのプロトタむプを䜜成する必芁があるずきは、垞に flexdashboard を䜿甚したす。 この機胜を䜿甚するず、XNUMX 時間以内にプロトタむプを䜜成できたす。

R Shiny の関数の芁求ず怜蚌

R Shiny での開発は、特に䜕が起こっおいるのかを理解するのが難しい奇劙な゚ラヌ メッセヌゞが衚瀺され続ける堎合、混乱する可胜性がありたす。 しかし、時間が経぀に぀れお、Shiny は開発および改善され、゚ラヌの原因を理解できるようにする関数がさらに倚く衚瀺されたす。 したがっお、䜕が起こっおいるのかが䞀般に明らかでない堎合、 req() は「サむレント」゚ラヌで問題を解決したす。 これにより、前のアクションに関連付けられた UI 芁玠を衚瀺できたす。 䟋を挙げお説明したしょう:

Output$go_button < — Shiny::renderUI({

# 動物入力が遞択されおいる堎合のみボタンを衚瀺したす

シャむニヌ::req(input$animal)

# 衚瀺ボタン

Shiny::actionButton("go",
Past("実斜", input$animal, "分析!")
)
})

validate() はレンダリング前にすべおをチェックし、たずえばナヌザヌが間違ったファむルをアップロヌドしたずいう゚ラヌ メッセヌゞを出力するオプションを提䟛したす。

# CSV入力ファむルを取埗

inFile < — input$file1
デヌタ < — inFile$datapath

# 犬の堎合のみテヌブルをレンダリングしたす

光沢のある::renderTable({
# 猫やりサギではなく、犬のファむルであるこずを確認したす
光沢のある::怜蚌(
need("犬の名前" %in%colnames(data)),
「犬の名前の列が芋぀かりたせん — 正しいファむルをロヌドしたしたか?」
)

デヌタ
})

これらすべおの機胜の詳现情報 ここで芋぀けるこずができたす.

自分自身の認蚌情報をシステム環境に保存する

認蚌情報の入力が必芁なコヌドを共有する予定がある堎合は、システム環境を䜿甚しお、Github たたは別のサヌビスで独自の認蚌情報をホストしないようにしおください。 配眮䟋:

Sys.setenv(
DSN = "デヌタベヌス名",
UID = "ナヌザヌID",
PASS = 「パスワヌド」
)

これで、環境倉数を䜿甚しおログむンできるようになりたした。

db < — DBI::dbConnect(
drv = odbc::odbc()、
dsn = Sys.getenv("DSN"),
uid = Sys.getenv("UID"),
pwd = Sys.getenv("PASS")
)

これらをオペレヌティング システムで環境倉数ずしお盎接蚭定するず、さらに䟿利です (特にデヌタを頻繁に䜿甚する堎合)。 この堎合、それらは垞に䜿甚可胜であり、コヌドで指定する必芁はありたせん。

スタむラヌを䜿甚しお Tidyverse を自動化する

styler パッケヌゞはコヌドをクリヌンアップするのに圹立ち、コヌド スタむルを Tidyverse に自動的に取り蟌むためのオプションが倚数ありたす。 必芁なのは、問題のあるスクリプトで styler::style_file() を実行するこずだけです。 このパッケヌゞは、秩序を回埩するために倚くのこずを行いたす (すべおではありたせん)。

R マヌクダりン ドキュメントのパラメヌタ化

犬に関するさたざたな事実を分析した玠晎らしい R Markdown ドキュメントを䜜成したした。 そしお、猫だけを䜿っお同じ䜜業をしたほうが良いのではないかず思い぀きたす。 問題ありたせん。コマンド XNUMX ぀で猫レポヌトの䜜成を自動化できたす。 これを行うには、R マヌクダりン ドキュメントをパラメヌタ化するだけで枈みたす。

これを行うには、指定したドキュメントの YAML ヘッダヌのパラメヌタヌを蚭定し、次に倀パラメヌタヌを蚭定したす。

— タむトル: 「動物分析」
著者「キヌス・マクナルティ」
日付: 「21 幎 2019 月 XNUMX 日」
出力
html_ドキュメント:
code_folding: "非衚瀺"
パラメヌタ
動物名:
倀: 犬
遞択肢
-犬
-猫
- うさぎ
研究幎数:
入力: スラむダヌ
最小: 2000
最倧: 2019
ステップ1
ラりンド1
XNUMX月: "
倀: [2010、2017] —

これで、ドキュメント コヌド内のすべおの倉数を params$animal_name および params$years_of_study ずしお登録できるようになりたした。 次に、Knit ドロップダりン メニュヌ (たたは Knit_with_parameters()) を䜿甚しお、パラメヌタヌを遞択できるようにしたす。

意倖ず知られおいない R の 10 の䟿利な機胜

明らかにする

replacejs は、組み蟌みの R コヌド、盎感的なナビゲヌション、スラむド メニュヌを備えた優れた HTML プレれンテヌションを䜜成できるパッケヌゞです。 HTML ショヌトカットを䜿甚するず、さたざたなスタむル オプションを備えたネストされたスラむド構造をすばやく䜜成できたす。 HTML はどのデバむスでも実行できるため、プレれンテヌションはすべおの携垯電話、タブレット、ラップトップで開くこずができたす。 情報開瀺は、パッケヌゞをむンストヌルし、YAML ヘッダヌで呌び出すこずで構成できたす。 以䞋に䟋を瀺したす。

— タむトル: 「ピヌプル アナリティクス ナニバヌスの最先端を明らかにする」
著者「キヌス・マクナルティ」
出力
replacejs::revealjs_presentation:
䞭倮はい
テンプレヌト:starwars.html
テヌマ: 黒
日付: 「HR Analytics Meetup London – 18 幎 2019 月 XNUMX 日」
リ゜ヌスファむル:
— ダヌス.png
- デススタヌ.png
- ハンチュヌりィ.png
- ミレニアム.png
- r2d2-threepio.png
-スタヌりォヌズ.html
—スタヌりォヌズ.png
—ストヌムトルヌパヌ.png
-

プレれンテヌションの゜ヌスコヌド ここに投皿されたしたず圌女自身rpubs.com/keithmcnulty/hr_meetup_london'>プレれンテヌション - ここ。

意倖ず知られおいない R の 10 の䟿利な機胜

R Shiny の HTML タグ

ほずんどのプログラマは、R Shiny の HTML タグを最倧限に掻甚しおいたせん。 ただし、これらはわずか 110 個のタグであり、HTML 関数たたはメディア再生のための短い呌び出しを䜜成するこずができたす。 たずえば、私は最近、tags$audio を䜿甚しお、タスクが完了したずきにナヌザヌに譊告する「勝利」サりンドを再生したした。

賞賛パッケヌゞ

このパッケヌゞの䜿甚は非垞に簡単ですが、ナヌザヌに賞賛を衚瀺するために必芁です。 奇劙に思えたすが、圌らは実際にそれを気に入っおいたす。

意倖ず知られおいない R の 10 の䟿利な機胜

スキルボックスは次のこずを掚奚したす。

出所 habr.com

コメントを远加したす