DockerでR4.0を実行する方法—そして3つのクールな新R4.0機能

R4.0にはいくつかの興味深い変更と更新があります。ここでは、そのうちの3つを見ていきます。さらに、DockerでRを実行することにより、既存のRのインストールに干渉しないようにR4.0をインストールする手順を段階的に説明します。

Dockerは、「コンテナー」を作成するためのプラットフォームです。これは、コンピューター上に完全に自己完結型の分離された環境です。それらをシステム上のミニシステムのように考えてください。それらには、独自のオペレーティングシステムと、それに追加したいもの(アプリケーションソフトウェア、スクリプト、データなど)が含まれます。コンテナーは多くのことに役立ちますが、ここでは1つだけに焦点を当てます。ソフトウェアの新しいバージョンのテストです。現在のローカル設定を台無しにすることなく。

DockerコンテナーでR4.0とRStudioの最新のプレビューリリースを実行するのは非常に簡単です。このチュートリアルのDockerの部分に従わず、Rの新機能を確認したいだけの場合は、「3つの新しいR4.0機能」セクションまでスクロールしてください。

DockerコンテナでR4.0を実行する

フォローする場合は、デスクトップDockerをまだインストールしていない場合は、システムにインストールします。//www.docker.com/products/docker-desktopにアクセスして、コンピューターに適したデスクトップバージョンをダウンロードします(Windows Mac、またはLinux)。次に、それを起動します。システムのどこかでクジラのDockerアイコンが実行されているはずです。

シャロン・マクリス、

次に、R4.0用のDockerイメージが必要です。Dockerイメージは、特定のソフトウェアが含まれているコンテナーを作成するための一連の指示と考えることができます。Adelmo Filho(ブラジルのデータサイエンティスト)とRocker R Dockerプロジェクトに感謝​​します。彼らは、非常に便利なDockerイメージを提供してくれます。Dockerイメージを少し変更して、このチュートリアルで使用したものにしました。

独自のシステムでDockerイメージを実行してコンテナーを作成するための構文は次のとおりです。

docker run --rm -p 8787:8787 -v / path / to / local / dir:/ home / rstudio / newdir username / docker_image_name:image_tag

dockerDockerコマンドを開始する必要がある方法です。runイメージを実行し、そのイメージからコンテナーを作成することを意味します。--rmそれが終了していますと、フラグ手段は、コンテナを削除します。含める必要はありません--rm;ただし、多数のコンテナーを実行し、それらを削除しないと、コンテナーは多くのディスク領域を占有し始めます。これ-p 8787:8787は、RStudioが実行するシステムポートで実行する必要のあるイメージにのみ必要です(いつかそれを含める予定の場合はShinyも同様です)。上記のコマンドは、RStudioの通常のデフォルトであるポート8787を指定します。

-vボリュームを作成します。Dockerコンテナーは自己完結型で分離されていると言ったのを覚えていますか?それは孤立したことを意味ます。デフォルトでは、コンテナはアクセスできません何も、それ以外の、そしてあなたのシステムの残りの部分は何もアクセスすることはできません内部のコンテナ。ただし、ボリュームを設定すると、ローカルフォルダーをコンテナー内のフォルダーにリンクできます。その後、自動的に同期します。構文:

-v path / to / local / directory:/ path / to / container / directory

RStudioでは、通常/home/rstudio/name_of_new_directory、コンテナディレクトリに使用します。

docker runコマンドの最後には、実行するイメージの名前があります。私のイメージは、多くのDockerイメージと同様に、イメージを共有するためにDockerによってセットアップされたサービスであるDockerHubに保存されます。GitHubと同様に、を指定してプロジェクトにアクセスしますusername/reponame。この場合:the_tag、通常はを追加します。これは、同じ画像のバージョンが異なる場合に役立ちます。

以下は、システム上でR4.0およびRStudioの最新のプレビューリリースでイメージを実行するために変更できるコードです。/ Users / smachlis / Document / MoreWithRの代わりにディレクトリの1つへのパスを使用してください これは、MacターミナルウィンドウまたはWindowsコマンドプロンプトまたはPowerShellウィンドウで実行できます。

docker run --rm -p 8787:8787 -v / Users / smachlis / Documents / MoreWithR:/ home / rstudio / morewithr sharon000 / my_rstudio_image:version1

このコマンドを初めて実行するとき、DockerはDocker Hubからイメージをダウンロードする必要があるため、時間がかかる場合があります。その後、画像のローカルコピーを削除しない限り、はるかに高速になります。

これlocalhost:8787で、ブラウザで開くと、RStudioが表示されます。

シャロン・マクリス、

デフォルトのユーザー名とパスワードはどちらもrstudioですが、これをクラウドで実行している場合はもちろんひどいものになります。しかし、私は通常はありませんので、それは、私のローカルマシン上で罰金だと思う任意の私の定期的なRStudioデスクトップにパスワードを。

コンテナ化されたR / RStudioでRバージョンを確認すると、バージョン4.0であることがわかります。RStudioは、この記事が最初に公開された時点での最新のプレビューリリースであるバージョン1.3.947である必要があります。これらは両方とも、私のローカルマシンにインストールされているものとは異なるバージョンです。

3つの新しいR4.0機能

それでは、R4.0のいくつかの新機能を見てみましょう。 

新しいstringsAsFactorsのデフォルト

以下のコードでは、4つの都市に関する情報を含む単純なデータフレームを作成し、構造を確認しています。

市<-c( "ニューヨーク"、 "サンフランシスコ"、 "ボストン"、 "シアトル")州<-c( "NY"、 "CA"、 "MA"、 "シアトル")PopDensity <-c(26403 、18838、13841、7962)密度<-data.frame(City、State、PopDensity)str(densities) 'data.frame':4obs。3つの変数のうち:$ City:chr "New York" "San Francisco" "Boston" "Seattle" $ State:chr "NY" "CA" "MA" "Seattle" $ PopDensity:num 26403 18838 13841 7962

予期しないことに気づきましたか?CityとStateは文字列ですが、stringsAsFactors = FALSE.Yesを指定していませんが、ついにRdata.frameのデフォルトはstringsAsFactors = FALSEです。古いバージョンのRで同じコードを実行すると、CityとStateが要因になります。

新しいカラーパレットと機能

次に、R4.0の新しい組み込み関数を見てみましょうpalette.pals()。これは、いくつかの組み込みのカラーパレットを示しています。

 パレット.pals()[1]「R3」「R4」「ggplot2」「岡部伊藤」[5]「アクセント」「ダーク2」「ペア」「パステル1」[9]「パステル2」「セット1」 「セット2」「セット3」[13]「Tableau10」「ClassicTableau」「Polychrome36」「Alphabet」 

もう1つの新しい関数、palette.colors()は、組み込みパレットに関する情報を提供します。

 パレット.colors(palette = "Tableau 10")ブルーオレンジレッドライトティールグリーンイエローパープル "#4E79A7" "#F28E2B" "#E15759" "#76B7B2" "#59A14F" "#EDC948" "#B07AA1"ピンクブラウンライトグレー " #FF9DA7 ""#9C755F ""#BAB0AC " 

次にshow_col()、結果に対してscalesパッケージの関数を実行すると、パレットの見事なカラー表示が得られます。

scales :: show_col(palette.colors(palette = "Tableau 10"))

シャロン・マクリス、

2つを組み合わせた小さな関数を作成しました。これは、1行のコードで組み込みパレットの一部を確認するのに役立ちます。

display_built_in_palette <-function(my_palette){

scales :: show_col(palette.colors(palette = my_palette))

}

display_built_in_palette( "岡部伊藤")

シャロン・マクリス、

None of this code works in earlier versions of R, since only scales::show_col() is available before R 4.0.

Escaping characters within strings

Finally, let’s look at a new function that makes it easier to include characters that usually need to be escaped in strings. 

The syntax is r"(my string here)". Here is one example:

string1 <- r"("I no longer need to escape these " double quotes inside a quote," they said.)"

That string includes an un-escaped quotation mark inside a pair of double quotes. If I display that string, I get this:

 > cat(string1) "I no longer need to escape these " double quotes inside a quote," they said. 

I can also print a literal \n inside the new function.

 string2 <- r"(Here is a backslash n \n)" cat(string2) Here is a backslash n \n 

特別なr"()"機能\nがないと、それは改行として読み取られ、表示されません。

 string3 <-"これはバックスラッシュnです\ n" cat(string3)これはバックスラッシュnです 

ベースRでこれを行う前に、2番目のバックスラッシュでそのバックスラッシュをエスケープする必要がありました。 

 string4 <-"通常のエスケープ\\ n" cat(string4)通常のエスケープ\ n 

この例ではそれは大したことではありませんが、複雑な正規表現のようなもので作業していると複雑になる可能性があります。

R4.0にはさらに多くの新機能があります。詳細はRプロジェクトのウェブサイトで確認できます。 

DockerをRで使用する方法の詳細については、rOpenSciLabsの短いが優れたRDockerチュートリアルをご覧ください。

さらにRのヒントについては、「Rでもっとやる」ページにアクセスしてください。