RStudio に Shiny パッケージをインストールする
RStudio 内でインタラクティブな Web アプリケーションの作成に進む前に、「Shiny」パッケージをすでにインストールしておく必要があります。このためには、RStudio の「ツール」メニューを展開し、続いて「パッケージのインストール」オプションを展開する必要があります。開いたウィンドウ内で、インストールしたいパッケージ、つまり「shiny」を指定し、「インストール」ボタンをタップする必要があります。 RStudio は、RStudio コンソールに Shiny パッケージをインストールします。
R で Shiny を始めましょう
R で Shiny を使い始めるには、RStudio の最初にある「ファイル」メニューを使用して新しい R ファイルを作成する必要があります。それを展開し、「新しいファイル」オプションを使用し、続いて「R スクリプト」オプションを使用します。 「無題」スクリプト ファイルが RStudio で開きます。任意の場所にある「R」ファイルに名前を変更します。
ここで、R で対話型アプリケーションを構築するために必要なパッケージをロードします。つまり、R の「ライブラリ」機能を使用します。「if」ステートメントは、以前にインストールされていないパッケージをインストールするために使用されます。 Shiny パッケージは、いくつかのグラフィカルな視覚化とともに、Web アプリケーションの対話型インターフェイスを構築するために使用されます。 「dplyr」パッケージは主に、いくつかの便利な機能を利用して R でのデータ操作を容易にするために使用されます。
最後に、「ggplot2」パッケージは、カスタマイズされた強力なグラフを作成することにより、優れたデータ視覚化ソースとしてロードされます。
もし ( ! requireNamespace ( 「光沢のある」 、 静かに = 真実 ) ) {
インストール。 パッケージ ( 「光沢のある」 )
}
もし ( ! requireNamespace ( 「dplyr」 、 静かに = 真実 ) ) {
インストール。 パッケージ ( 「dplyr」 )
}
もし ( ! requireNamespace ( 「ggplot2」 、 静かに = 真実 ) ) {
インストール。 パッケージ ( 「ggplot2」 )
}
図書館 ( 光沢のある )
図書館 ( dplyr )
図書館 ( ggplot2 )
インタラクティブな試験採点システムを構築する
このチュートリアルでは、学生が 100 点満点で得られる点数によって達成した成績を取得できる「試験採点システム」を作成します。提供されるスクリプトは、デザインと外観を指定する Shiny アプリの「ui」コンポーネントです。プログラム。プログラムは、ブラウザ ウィンドウに合わせて調整できる調整可能なデザインである FluidPage を生成します。
「titlePanel」と「sidebarLayout」は「fluidPage」の子孫です。 「titlePanel」に表示されるのは、プログラムの「Exam Grading System」のタイトルだけです。 「sidebarPanel」と「mainPanel」は、「sidebarLayout」がアプリケーションを分割するために使用する 2 つのセクションです。 「sidebarPanel」には、「score」という名前の「textAreaInput」と「calculate」という名前の「actionButton」という入力のペアが含まれています。
「textAreaInput」を使用して、生徒ごとに 1 行に 1 つのスコアを入力できます。 「actionButton」を使用して成績評価を開始できます。 「mainPanel」には、「Result」という名前の「tableOutput」と「ResultGraph」という名前の「plotOutput」という 1 組の出力が存在します。 「tableOutput」と「plotOutput」はどちらも、計算結果をグラフの形式で表示します。
ウイ <- 流体ページ (タイトルパネル ( 「試験成績評価システム」 ) 、
サイドバーレイアウト (
サイドバーパネル (
テキストエリア入力 ( 'スコア' 、 「生徒のスコアを入力してください (1 行に 1 つ):」 、 「」 ) 、
アクションボタン ( 「計算する」 、 「成績を計算してみよう」 )
) 、
メインパネル (
テーブル出力 ( '結果' ) 、
プロット出力 ( 「結果グラフ」 )
) ) )
サーバー メソッドは、アプリケーションのサーバー側ロジックを確立します。生徒の採点は、最初は「data」という名前のリアクティブ変数に保存されます。このため、「計算」ボタンは R の「observeEvent」メソッドによって監視されます。ボタンがトリガーされた後、コードは最初にテキスト フィールド入力に入力された値を数値に変換します。
各スコアの後に「\n」を使用して改行し、次の行に新しいスコアを入力します。このメソッドは、見つかったスコアをすべて「data」変数に配置します。ユーザーがスコアを入力しなかった場合、メソッドはエラーを含むメッセージを表示します。
サーバ <- 関数 ( 入出力 ) {データ <- リアクティブヴァル ( ヌル )
イベントを観察する ( 入力$計算、 {
スコア <- として。 数値 ( リストから外す ( strsplit ( 入力$スコア、 」 \n 」 ) ) )
もし ( 長さ ( スコア ) > 0 ) {
データ ( スコア )
} それ以外 {
データ ( ヌル )
ショーモーダル ( モーダルダイアログ (
タイトル = 'エラー' 、
「エラー: 値を追加してください!」 、
簡単閉じる = 真実
) )
}
} )
「output$Result」と「output$ResultGraph」の 2 つの出力は、生徒の成績と達成した成績を表示するために指定されています。 renderTable() 動的メソッドは、「output$Result」というラベルが付けられた生徒のテストの点数と成績のデータ テーブルを生成します。 renderPlot() メソッドは同様にリアクティブで、生徒の成績の棒グラフを生成し、同様に「output$ResultGraph」出力に保存します。
したがって、入力データが更新されるたびにそれらが確認されます。 if (!is.null(data())) 式は、受信したデータが null かどうかを判断します。 「if」ステートメントのスクリプトは、空でない場合に実行されます。生徒のスコアのベクトルが入力「データ」を構成します。 case_when() メソッドを使用して、各生徒にスコアに基づいて成績が与えられます。学生の成績とテストの点数を含むデータ フレームは、data.frame() メソッドを使用して作成されます。 「Student」、「Score」、および「Grade」の列がデータ フレームに追加されます。成績分布は、table() メソッドを使用して「GradeCount」というテーブルにコンパイルされます。
出力$結果 <- レンダリングテーブル ( {もし ( ! は。 ヌル ( データ ( ) ) ) {
成績 <- case_when (
データ ( ) > 80 ~ 「あ」 、
データ ( ) > 60 ~ 「B」 、
データ ( ) > 40 ~ 「C」 、
データ ( ) > 30 ~ 「D」 、
真実 ~ 「ふ」
)
データ。 フレーム ( 学生 = 1 : 長さ ( データ ( ) ) 、 スコア = データ ( ) 、 学年 = 成績 )
}
} )
出力$結果グラフ <- レンダリングプロット ( {
もし ( ! は。 ヌル ( データ ( ) ) ) {
成績 <- case_when (
データ ( ) > 80 ~ 「あ」 、
データ ( ) > 60 ~ 「B」 、
データ ( ) > 40 ~ 「C」 、
データ ( ) > 30 ~ 「D」 、
真実 ~ 「ふ」
)
成績数 <- テーブル ( 成績 )
棒グラフは「ggplot2」ライブラリを使用して作成されます。 Count (各成績を取得した生徒の総数) と Grade 列が DataFrame に作成されます。 「x 軸」に「Grade」データ、「y 軸」に「Count」データを持つ棒グラフは、geom_bar() メソッドを使用して作成されます。 stat = “identity” オプションは、いかなる変換も行わずに実際のデータを利用するように ggplot2 に指示します。タイトル、x 軸ラベル、y 軸ラベルはすべて「labs」メソッドを介して追加されます。バーの色は、scale_fill_manual() メソッドを使用して割り当てられます。不要なグリッド線とオーバーレイ コンポーネントは、theme_minimal() メソッドを使用して削除されます。 ShinyApp(ui,server) メソッドはアプリを構築します。
ggプロット ( データ = データ。 フレーム ( 学年 = 名前 ( 成績数 ) 、 カウント = として。 数値 ( 成績数 ) ) 、えす ( バツ = グレード、および = 数える、埋める = 学年 ) ) +
ジオムバー ( ステータス = '身元' ) +
研究室 ( タイトル = 「成績分布」 、
バツ = '学年' 、
そして = 'カウント' ) +
スケールフィルマニュアル ( 価値観 = c ( 「あ」 = '緑' 、 「B」 = '紫' 、 「C」 = 'ピンク' 、
「D」 = 'オレンジ' 、 「ふ」 = '赤' ) ) +
テーマ_ミニマル ( )
}
} )
}
光沢のあるアプリ ( UI、サーバー )
このコードを実行すると、対話型インターフェイスが表示され、マークを追加して [成績を計算しましょう] ボタンをクリックします。
生徒の得点と成績を含む表が表示され、その後に成績分布を示す棒グラフが色分けして表示されます。
結論
このガイドでは、RStudio を介して R 言語で Shiny パッケージを使用することの重要性について説明します。説明を補足すると、「Shiny」パッケージを利用して、R コードで学生の採点システム用の対話型 Web アプリケーションを構築しました。