Rでwebアプリを作ってGitHubから使えるようにしてみた話
こんばんは。
先日公開した数学gifを簡単に作成する方法の記事が自分的には予想外にみられていて、とっても嬉しくなりました。
今回は、Rで「webアプリを作成して、公開する」ということをやってみました。
個人的に、データをアップロードするとそのデータをまとめてくれたり、グラフをプロットしてくれるアプリケーションを作って公開できるようになりたかったのでやってみたのですが、思ったよりも難しかったです。
ちなみにアプリはRのパッケージ「shiny」を使用して作成しました。今回はテストということで、csvファイルをアップして、データの変数名を指定するとデータのヒストグラムを作成してくれるという単純なアプリにしました。
shinyによるwebアプリケーション作成方法は、
や
を参考にしました。英語が得意な方は、公式のチュートリアルを見るのが良いと思います。
とりあえずはじめてみたい方は、Rでshinyをインストールした後、
library(shiny)
runExample("01_text")
を実行するとshinyで作れるアプリの例とコードを見ることができます。
webアプリ自体はshinyを使えば割と簡単に作れるので、皆さんも上記のサイトを参考に作りましょう(笑)
僕の場合は、作ったアプリをweb上に置いて使えるようにするのが大変でした。
最初はアプリを直接利用できるようにしたかったのですが、そのためにはAWSなどのサービスを使わなければならなかったので、面倒になって断念。
そこで、アプリのソースをGitHubに設置して、Rから呼び出すことにしました。これだと、Rを使っていない人はアプリを利用できないのですが、データ分析したい人がRを全く使えないってことはないと思うので良いことにしました。
GitHubの利用法については
を参考にしました。SourceTreeとか、とりあえずインストールして、コミットすれば何とかなりました。
なぜGitHubを使うことにしたのかというと、shinyで作ったアプリは、なんとGitHubから直接実行できるからです!
library(shiny)
runGitHub(repo = "<repogitory name>", username = "<user name>")
上記のコードを使えば実行できます。ちなみに今回僕が作ったアプリは
library(shiny)
runGitHub(repo = "App-1", username = "keihnd")
から実行できるので、気が向いたら実行してみてください。
とまあ、今回はRのshinyパッケージを利用したwebアプリを作って、GitHubから実行できるようにしてみた話を書いてみました。
特に、参考にしたサイトを残しておきたかったのと、shinyでアプリ作る人が増えたら面白いかなと思います。
今後は、よりデータ分析しやすいアプリを作っていきたいなと思います。作る過程もnoteに書いていきたいなと思ってます。見てもらえると嬉しいです。
Twitterやっているのでよかったら仲良くしてください。