JuliaからRのデータセットを使う

R言語の利点のひとつは、統計処理や種々の分析を試してみるための組み込みデータセットが豊富なところです。他言語からそれらを呼び出す方法を知っていれば、Rユーザーが他の言語を試す際にも便利ですよね。というわけで今回はJuliaからRのデータセットを使う方法を試してみました。

# インストールして`head()`してみる

https://github.com/johnmyleswhite/RDatasets.jl
`RDatasets`パッケージを使います。

```jl
$julia
julia> Pkg.add("RDatasets") # いろいろgit cloneされる
julia> using RDatasets # いろいろprecompileされる
julia> head(RDatasets.datasets("datasets"))
6×5 DataFrames.DataFrame
│ Row │ Package    │ Dataset            │ Title                                       │ Rows │ Columns │
├─────┼────────────┼────────────────────┼─────────────────────────────────────────────┼──────┼─────────┤
│ 1   │ "datasets" │ "BOD"              │ "Biochemical Oxygen Demand"                 │ 6    │ 2       │
│ 2   │ "datasets" │ "CO2"              │ "Carbon Dioxide Uptake in Grass Plants"     │ 84   │ 5       │
│ 3   │ "datasets" │ "Formaldehyde"     │ "Determination of Formaldehyde"             │ 6    │ 2       │
│ 4   │ "datasets" │ "HairEyeColor"     │ "Hair and Eye Color of Statistics Students" │ 32   │ 4       │
│ 5   │ "datasets" │ "InsectSprays"     │ "Effectiveness of Insect Sprays"            │ 72   │ 2       │
│ 6   │ "datasets" │ "LifeCycleSavings" │ "Intercountry Life-Cycle Savings Data"      │ 50   │ 6       │
```

# anscombeデータを呼びだしてみる

ちょっと紛らわしいのですが、Rの標準組み込みデータセットは、現在`{datasets}`という名前のパッケージに含まれています。なので、例えば`{datasets}`パッケージに含まれている`anscombe`というデータを呼び出したかったら、以下のように書いて下さい。

なおanscombeデータセットの中身については[アンスコムの例 - Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%B3%E3%82%B9%E3%82%B3%E3%83%A0%E3%81%AE%E4%BE%8B)を参照して下さい。

```jl
julia> anscombe = RDatasets.dataset("datasets","anscombe")
11×8 DataFrames.DataFrame
│ Row │ X1 │ X2 │ X3 │ X4 │ Y1    │ Y2   │ Y3    │ Y4   │
├─────┼────┼────┼────┼────┼───────┼──────┼───────┼──────┤
│ 1   │ 10 │ 10 │ 10 │ 8  │ 8.04  │ 9.14 │ 7.46  │ 6.58 │
│ 2   │ 8  │ 8  │ 8  │ 8  │ 6.95  │ 8.14 │ 6.77  │ 5.76 │
│ 3   │ 13 │ 13 │ 13 │ 8  │ 7.58  │ 8.74 │ 12.74 │ 7.71 │
│ 4   │ 9  │ 9  │ 9  │ 8  │ 8.81  │ 8.77 │ 7.11  │ 8.84 │
│ 5   │ 11 │ 11 │ 11 │ 8  │ 8.33  │ 9.26 │ 7.81  │ 8.47 │
│ 6   │ 14 │ 14 │ 14 │ 8  │ 9.96  │ 8.1  │ 8.84  │ 7.04 │
│ 7   │ 6  │ 6  │ 6  │ 8  │ 7.24  │ 6.13 │ 6.08  │ 5.25 │
│ 8   │ 4  │ 4  │ 4  │ 19 │ 4.26  │ 3.1  │ 5.39  │ 12.5 │
│ 9   │ 12 │ 12 │ 12 │ 8  │ 10.84 │ 9.13 │ 8.15  │ 5.56 │
│ 10  │ 7  │ 7  │ 7  │ 8  │ 4.82  │ 7.26 │ 6.42  │ 7.91 │
│ 11  │ 5  │ 5  │ 5  │ 8  │ 5.68  │ 4.74 │ 5.73  │ 6.89 │
```
RDatasetsパッケージが入っていれば、`RDatasets.dataset()`は、単に`dataset()`とも書けます。

# `{datasets}`パッケージ以外のデータもすぐ使える
```jl
julia> RDatasets.datasets()
733×5 DataFrames.DataFrame
│ Row │ Package │ Dataset           │ Title                                            │ Rows  │ Columns │
├─────┼─────────┼───────────────────┼──────────────────────────────────────────────────┼───────┼─────────┤
│ 1   │ "COUNT" │ "affairs"         │ "affairs"                                        │ 601   │ 18      │
│ 2   │ "COUNT" │ "azdrg112"        │ "azdrg112"                                       │ 1798  │ 4       │
│ 3   │ "COUNT" │ "azpro"           │ "azpro"                                          │ 3589  │ 6       │
│ 4   │ "COUNT" │ "badhealth"       │ "badhealth"                                      │ 1127  │ 3       │
│ 5   │ "COUNT" │ "fasttrakg"       │ "fasttrakg"                                      │ 15    │ 9       │
│ 6   │ "COUNT" │ "lbw"             │ "lbw"                                            │ 189   │ 10      │
│ 7   │ "COUNT" │ "lbwgrp"          │ "lbwgrp"                                         │ 6     │ 7       │
│ 8   │ "COUNT" │ "loomis"          │ "loomis"                                         │ 410   │ 11      │
│ 9   │ "COUNT" │ "mdvis"           │ "mdvis"                                          │ 2227  │ 13      │
│ 10  │ "COUNT" │ "medpar"          │ "medpar"                                         │ 1495  │ 10      │
│ 11  │ "COUNT" │ "rwm"             │ "rwm"                                            │ 27326 │ 4       │
│ 12  │ "COUNT" │ "rwm5yr"          │ "rwm5yr"                                         │ 19609 │ 17      │
│ 13  │ "COUNT" │ "ships"           │ "ships"                                          │ 40    │ 7       │
│ 14  │ "COUNT" │ "titanic"         │ "titanic"                                        │ 1316  │ 4       │
│ 15  │ "COUNT" │ "titanicgrp"      │ "titanicgrp"                                     │ 12    │ 5       │
│ 16  │ "Ecdat" │ "Accident"        │ "Ship Accidents"                                 │ 40    │ 5       │
│ 17  │ "Ecdat" │ "Airline"         │ "Cost for U.S. Airlines"                         │ 90    │ 6       │
│ 18  │ "Ecdat" │ "Airq"            │ "Air Quality for Californian Metropolitan Areas" │ 30    │ 6       │
⋮
│ 715 │ "vcd"   │ "Hospital"        │ "Hospital data"                                  │ 3     │ 4       │
│ 716 │ "vcd"   │ "JobSatisfaction" │ "Job Satisfaction Data"                          │ 8     │ 4       │
│ 717 │ "vcd"   │ "JointSports"     │ "Opinions About Joint Sports"                    │ 40    │ 5       │
│ 718 │ "vcd"   │ "Lifeboats"       │ "Lifeboats on the Titanic"                       │ 18    │ 8       │
│ 719 │ "vcd"   │ "NonResponse"     │ "Non-Response Survey Data"                       │ 12    │ 4       │
│ 720 │ "vcd"   │ "OvaryCancer"     │ "Ovary Cancer Data"                              │ 16    │ 5       │
│ 721 │ "vcd"   │ "PreSex"          │ "Pre-marital Sex and Divorce"                    │ 16    │ 5       │
│ 722 │ "vcd"   │ "Punishment"      │ "Corporal Punishment Data"                       │ 36    │ 5       │
│ 723 │ "vcd"   │ "RepVict"         │ "Repeat Victimization Data"                      │ 8     │ 9       │
│ 724 │ "vcd"   │ "Saxony"          │ "Families in Saxony"                             │ 13    │ 2       │
│ 725 │ "vcd"   │ "SexualFun"       │ "Sex is Fun"                                     │ 4     │ 5       │
│ 726 │ "vcd"   │ "SpaceShuttle"    │ "Space Shuttle O-ring Failures"                  │ 24    │ 6       │
│ 727 │ "vcd"   │ "Suicide"         │ "Suicide Rates in Germany"                       │ 306   │ 6       │
│ 728 │ "vcd"   │ "Trucks"          │ "Truck Accidents Data"                           │ 24    │ 5       │
│ 729 │ "vcd"   │ "UKSoccer"        │ "UK Soccer Scores"                               │ 5     │ 6       │
│ 730 │ "vcd"   │ "VisualAcuity"    │ "Visual Acuity in Left and Right Eyes"           │ 32    │ 4       │
│ 731 │ "vcd"   │ "VonBort"         │ "Von Bortkiewicz Horse Kicks Data"               │ 280   │ 4       │
│ 732 │ "vcd"   │ "WeldonDice"      │ "Weldon's Dice Data"                             │ 11    │ 2       │
│ 733 │ "vcd"   │ "WomenQueue"      │ "Women in Queues"                                │ 11    │ 2       │
```


# インストールとコンパイルのログ省略しないver
```jl
$ julia
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.4.5 (2016-03-18 00:58 UTC)
 _/ |\__'_|_|_|\__'_|  |  
|__/                   |  x86_64-apple-darwin14.5.0
julia> Pkg.add("RDatasets")
INFO: Initializing package repository /Users/takao/.julia/v0.4
INFO: Cloning METADATA from git://github.com/JuliaLang/METADATA.jl
INFO: Cloning cache of BinDeps from git://github.com/JuliaLang/BinDeps.jl.git
INFO: Cloning cache of Compat from git://github.com/JuliaLang/Compat.jl.git
INFO: Cloning cache of DataArrays from git://github.com/JuliaStats/DataArrays.jl.git
INFO: Cloning cache of DataFrames from git://github.com/JuliaStats/DataFrames.jl.git
INFO: Cloning cache of Docile from git://github.com/MichaelHatherly/Docile.jl.git
INFO: Cloning cache of GZip from git://github.com/JuliaIO/GZip.jl.git
INFO: Cloning cache of RDatasets from git://github.com/johnmyleswhite/RDatasets.jl.git
INFO: Cloning cache of Reexport from git://github.com/simonster/Reexport.jl.git
INFO: Cloning cache of Rmath from git://github.com/JuliaStats/Rmath.jl.git
INFO: Cloning cache of SHA from git://github.com/staticfloat/SHA.jl.git
INFO: Cloning cache of SortingAlgorithms from git://github.com/JuliaLang/SortingAlgorithms.jl.git
INFO: Cloning cache of StatsBase from git://github.com/JuliaStats/StatsBase.jl.git
INFO: Cloning cache of StatsFuns from git://github.com/JuliaStats/StatsFuns.jl.git
INFO: Cloning cache of URIParser from git://github.com/JuliaWeb/URIParser.jl.git
INFO: Installing BinDeps v0.3.21
INFO: Installing Compat v0.8.5
INFO: Installing DataArrays v0.3.6
INFO: Installing DataFrames v0.7.5
INFO: Installing Docile v0.5.23
INFO: Installing GZip v0.2.19
INFO: Installing RDatasets v0.1.3
INFO: Installing Reexport v0.0.3
INFO: Installing Rmath v0.1.1
INFO: Installing SHA v0.1.2
INFO: Installing SortingAlgorithms v0.0.6
INFO: Installing StatsBase v0.9.0
INFO: Installing StatsFuns v0.3.0
INFO: Installing URIParser v0.1.5
INFO: Building Rmath
INFO: Package database updated

julia> 
julia> using RDatasets
INFO: Precompiling module Reexport...
INFO: Precompiling module DataFrames...
```

# 実行環境
```jl
julia> versioninfo()
Julia Version 0.4.5
Commit 2ac304d* (2016-03-18 00:58 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin14.5.0)
  CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
  WORD_SIZE: 64
  BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Sandybridge)
  LAPACK: libopenblas
  LIBM: libopenlibm
  LLVM: libLLVM-3.3
julia> now()
2016-07-18T21:17:52
```

# 参考資料
- https://en.wikibooks.org/wiki/Introducing_Julia/DataFrames
- http://www.slideshare.net/TokorosawaYoshio/tokyor40-35862024



Enjoy!