静かに深化している julia の DataFames の describe()
R の summary() に比べると、いまひとつだった、julia の DataFrames の describe() という印象でした。しかし、静かに深化しています。
では、毎度、おなじみの iris を呼び出しましょう。
julia> using RDatasets julia> iris = dataset("datasets", "iris");
では、describe() を使ってみましょう。
julia> @time describe(iris) 0.000637 seconds (450 allocations: 24.531 KiB) 5×7 DataFrames.DataFrame │ Row │ variable │ mean │ min │ median │ max │ nmissing │ eltype │ ├─────┼─────────────┼─────────┼─────────┼─────────┼─────────┼──────────┼────────────────────────────────────────────┤ │ 1 │ SepalLength │ 5.84333 │ 4.3 │ 5.8 │ 7.9 │ nothing │ Float64 │ │ 2 │ SepalWidth │ 3.05733 │ 2.0 │ 3.0 │ 4.4 │ nothing │ Float64 │ │ 3 │ PetalLength │ 3.758 │ 1.0 │ 4.35 │ 6.9 │ nothing │ Float64 │ │ 4 │ PetalWidth │ 1.19933 │ 0.1 │ 1.3 │ 2.5 │ nothing │ Float64 │ │ 5 │ Species │ nothing │ nothing │ nothing │ nothing │ nothing │ CategoricalArrays.CategoricalString{UInt8} │
これはこれで、なかなか素敵です。
おまけで、RCall から、R の summary() を使ってみましょう。
julia> using RCall INFO: Precompiling module RCall. julia> R"summary($iris)" RCall.RObject{RCall.StrSxp} SepalLength SepalWidth PetalLength PetalWidth Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 Median :5.800 Median :3.000 Median :4.350 Median :1.300 Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500 Species setosa :50 versicolor:50 virginica :50
R の summary() の方が情報は多いです。
これを見ていると、boxplot() したくなりますね。おまけです。
julia> R"boxplot($iris)" RCall.RObject{RCall.VecSxp} $stats [,1] [,2] [,3] [,4] [,5] [1,] 4.3 2.2 1.00 0.1 1 [2,] 5.1 2.8 1.60 0.3 1 [3,] 5.8 3.0 4.35 1.3 2 [4,] 6.4 3.3 5.10 1.8 3 [5,] 7.9 4.0 6.90 2.5 3 $n [1] 150 150 150 150 150 $conf [,1] [,2] [,3] [,4] [,5] [1,] 5.632292 2.935497 3.898477 1.10649 1.741987 [2,] 5.967708 3.064503 4.801523 1.49351 2.258013 $out [1] 4.4 4.1 4.2 2.0 $group [1] 2 2 2 2 $names [1] "SepalLength" "SepalWidth" "PetalLength" "PetalWidth" "Species"
満足です。