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とか)に変えれば他の集計もできたりとか。