【R言語入門】Raspi4にインストールして遊んでみた♪

今夜はRaspi4にインストールして、遊んでみた。
###インストール
```
環境；
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 10 (buster)
Release:	10
Codename:	buster
```
Rを導入して、Rの強力なデータ分析能力を使って、四六時中データ分析して、自動でグラフや予兆分析するって楽しそう♪
ということで、まずインストール。。。
RのインストールはきっとUbuntuと同じでいいんでしょ。
ということで、以下のダウンロードサイトからダウンロードしてインストール。
【参考】
・[UbuntuにRをインストール](https://qiita.com/wonder_zone/items/c0cb4033c2a599b3d662)

```
$ gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
$ gpg -a --export E084DAB9 | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install r-base
```
これで、とりあえずRが動きますが、やはりR/Studio入れたい。以下の参考サイトから、以下のファイルをダウンロードしてダブルクリックしますが、インストール出来ずに失敗。。。。諦めました。

| OS | Download | Size | SHA-256 |
|:--|:--|:--|:--|
| Ubuntu 18/Debian 10 |  rstudio-1.2.5042-amd64.deb | 104.93 MB | 99e0f57b |

【参考】
・[Download RStudio](https://rstudio.com/products/rstudio/download/)
###Rの実行
そして、どうにか動かす方法をということで、試した結果、

```
$ R
R version 3.5.2 (2018-12-20) -- "Eggshell Igloo"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: arm-unknown-linux-gnueabihf (32-bit)
...
>
```
この状態で、要は張り付ければ、スクリプト言語よろしく実行してくれます。
さらに、simple_graph.Rなどとファイルに保存して、
以下のコマンドで実行できます。

```
$ Rscript --vanilla --slave simple_graph.R
pdf 
  2 
```
とりあえず、正規分布乱数生成して、頻度グラフ描画し、さらに密度関数density()を描画し、さらに平均と標準偏差を求めて正規分布を求め、描画するグラフアプリが動きました。

```R
png(file='simple_10000.png', res=250, w=1500, h=1500)
nm=10000
x <- rnorm(nm)                                       
hist(x, xlim=c(-4,4), ylim=c(0,0.5), prob=T, ann=F)
par(new=T)                                         
plot(density(x), xlim=c(-4,4), ylim=c(0,0.5),  xlab="" , ylab="" , main="" , col="red" )
axis(side=4)
mean_data=round(mean(x),digits=2)
sigma_data=round(sqrt(var(x)),digits=2)
x <- seq(-4, 4, by = 0.1)
y1 <- dnorm(x, mean=mean_data, sd=sigma_data)
lines(x,y1,col="blue",lwd=2)
legend("topright",legend=c("data",nm,"μ",mean_data,"σ",sigma_data))
dev.off()
```
結果は以下のとおり、生成乱数を増やすと正規分布に近づきます。

|No. of Data|正規分布 & 頻度分布|
|:-:|:-:|
|200|![simple_200.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/a7f45b98-9b7c-f831-4c86-466af02afc03.png)|
|1000|![simple_1000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/a2408e38-dbe5-b3cd-39a9-88eb30325a80.png)|
|2000|![simple_2000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/7d90509d-8df1-a1ce-8044-9049cc95b858.png)|
|10000|![simple_10000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/427d8b8a-6eb7-ec22-6809-2d84ad73ace3.png)|
###追加パッケージのインストール
このあと、検定とかやってみたいので、さらにpackageをインストールします。
とういうか、以下の参考のとおり、ほぼすべてのパッケージを入れます。
【参考】
1.[R のパッケージのインストール方法と呼び出し方@biostatistics](https://stats.biopapyrus.jp/r/basic/package.html)
2.[R バージョン 3.1.1 のインストール（Ubuntu 上）](https://www.kkaneko.jp/tools/ubuntu/rubuntu.html)
パッケージインストールの基本は以下のコマンドで"som"というパッケージをインストールできます。

```
install.packages("som", dependencies = TRUE)
```
今回は、上記の参考２の方法で上から順にすべてインストールして来て、以下の一括インストールを実施しました。

```
6.Cran Task View を用いて、 いくつかのタスク・ビューをインストール
#!/bin/bash
# ctv
echo 'options(repos="http://cran.rstudio.com") ' > /tmp/a.$$.r 
echo 'install.packages("ctv", repos="http://cran.rstudio.com/") ' >> /tmp/a.$$.r
cat /tmp/a.$$.r | sudo R --vanilla 

for i in Cluster Graphics MachineLearning Multivariate NaturalLanguageProcessing Robust Spatial SpatioTemporal TimeSeries; do 
  echo $i
  rm -f /tmp/a.$$.r 
  echo "options(repos=\"http://cran.rstudio.com\") " > /tmp/a.$$.r 
  echo "library(ctv); install.views(\"$i\", repos=\"http://cran.rstudio.com/\") " >> /tmp/a.$$.r
  cat /tmp/a.$$.r | sudo R --vanilla 
done
```
ちなみに、自動的にインストール出来ましたが、延々終了せず、一晩かかりました。その後、以下の更新も実施しています。
※その下に一括インストールの方法がありますが、これは実施しませんでした

```
R のパッケージの更新
#!/bin/bash
echo 'options(repos="http://cran.rstudio.com/"); update.packages(checkBuilt=TRUE, ask=FALSE)' | sudo R --vanilla
```
###機械学習系のアプリを動かしてみる
上記の検定もやりましたが、次回に記事にしようと思います.
今回は、以下の参考の３種類の散布図を画いてみました.
解説は、参考を参照してください。
【参考】
3.[散布図行列を描くには （corrplot, pairs, GGally）@StatModeling Memorandum](http://statmodeling.hatenablog.com/entry/scatter-plot-matrix)
![corrplot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/cd4f21bd-f8e3-899b-b7b6-41d1f5397b9f.png)
![pairs.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/94a15d35-2698-fbd5-3ab8-0c5dab37c192.png)
![ggally.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233744/190e0aa8-af0e-51e3-5fa7-1c46eb76c51b.png)
###まとめ
・RをRaspi4にインストールして遊んでみた
・Rで実行環境でまとめてコピペすれば実行できる
・R/studioはインストール出来なかったが、jupyter notebookでコード作成をし、`Rscript --vanilla simple_graph.R`のように実行することが出来た
・機械学習系のアプリも動きそうである

・もう少し分析系のアプリを作成して、リアルタイム実行をさせようと思う