Julia の aggregate 関数で 「群ごとの平均値を求める」 または、「ダブりのある測定値を平均値で代表させる」
おなじみの iris を例にとりましょう。iris の Species すなわち setosa, versicolor, virginica の3種について、それぞれの4測定値 Sepal.Length, Sepal.Width ,Petal.Length, Petal.Width の平均を求めます。
aggregate(iris, : Species, mean)
であります。R の場合よりも書式が少しシンプルです。
SD は std で良いようです。
using RDatasetsこれで、下記のように結果が出ます。(ズレていたら、ごめんなさい)
iris = dataset("datasets", "iris")
aggregate(iris, :Species, [mean, std])
3×9 DataFrames.DataFrame │ Row │ Species │ SepalLength_mean │ SepalLength_std │ SepalWidth_mean │ SepalWidth_std │ PetalLength_mean │ PetalLength_std │ PetalWidth_mean │ PetalWidth_std │ ├─────┼──────────────┼──────────────────┼─────────────────┼─────────────────┼────────────────┼──────────────────┼─────────────────┼─────────────────┼────────────────┤ │ 1 │ "setosa" │ 5.006 │ 0.35249 │ 3.428 │ 0.379064 │ 1.462 │ 0.173664 │ 0.246 │ 0.105386 │ │ 2 │ "versicolor" │ 5.936 │ 0.516171 │ 2.77 │ 0.313798 │ 4.26 │ 0.469911 │ 1.326 │ 0.197753 │ │ 3 │ "virginica" │ 6.588 │ 0.63588 │ 2.974 │ 0.322497 │ 5.552 │ 0.551895 │ 2.026 │ 0.27465 │
Julia は、後発言語だけあって、文字数が少ないのに、かゆいところに手が届くことがあります。ただし、具体的事例をあげた解説が少ないのは、現在のところ難点ですね。