R の aggregate 関数で 「群ごとの平均値を求める」 または、「ダブりのある測定値を平均値で代表させる」
Julia でもありますが、R の aggregate 関数を使うと、「群ごとの平均値を求める」 または、「ダブりのある測定値を平均値で代表させる」 などが、簡単にできます。後者は、「 重複した 'row.names' は許されません 」 などというエラーへの対応として aggregate を使える可能性があるという意味でもあります。 おなじみの iris を例にとりましょう。iris の Species すなわち setosa, versicolor, virginica の3種について、それぞれの4測定値 Sepal.Length, Sepal.Width ,Petal.Length, Petal.Width の平均を求めます。 これは、考え方を変えると、複数回測定したダブりのあるデータを、平均値で代表させる方法として、利用することも可能です。ちなみに iris では、50 回の反復測定がされています。 なかなか、面倒に思えますが、R の aggregate 関数を使うとすぐです。すなわち aggregate(iris[,1:4],by=list(iris[,5]),FUN=mean) で、以下のような結果がでます。 Group.1 Sepal.Length Sepal.Width Petal.Length Petal.Width 1 setosa 5.006 3.428 1.462 0.246 2 versicolor 5.936 2.770 4.260 1.326 3 virginica 6.588 2.974 5.552 2.026 別法としては、1つずつ sapply(split(iris[,1],iris[,5]), mean) としていけば求まります。 aggregate 関数の FUN を、median, sd などとしても、機能します。 実は、data.frame を、ベクトル化したい時、例えば、クラスタリングやヒートマップなどを作製したい時に、aggregate 関数を使うと便利です。mean などが代表値として妥当かを考...