Linq で 列のデータを平均を求めた例。
以下のコードの場合、左側一列目 10,20,51 の平均(=27)を計算し、それを列分繰り返す。
Sub Main() Dim table()() = {New Double() {10, 20, 30, 40}, New Double() {20, 40, 62, 74}, New Double() {51, 45, 25, 30}} Dim columnAverage = From column In Enumerable.Range(0, table(0).Length) Select ( From row In Enumerable.Range(0, table.Length) Select table(row)(column) ).Average For Each n In columnAverage Console.WriteLine(n.ToString) Next End Sub
結果
27 35 39 48
SQL の相関サブクエリーのような感じに…(汗
Enumerable.Range 使ったりとか、table(0).Length 使ったりとか、なんかいまいちな気もしますが、とりあえずは集計できるということで…
.Average を別のメソッド(.Sumとか)に変えれば他の集計もできたりとか。