タイトル | : Re^3: dataTable 2 配列 |
記事No | : 11095 |
投稿日 | : 2013/06/17(Mon) 10:16 |
投稿者 | : 魔界の仮面弁士 |
> 配列に変換した後、「各要素の平均」を > 求めたいです。コードで書くと以下のようになると思います。
平均を得るだけならば、DataTable 単体でも行えますよ。
'---「Compute メソッド」を使う方法 Dim dt As New DataTable()
'文字列だと平均を得られないので、実数型として定義しておく dt.Columns.Add("COL1", GetType(Decimal)) dt.Columns.Add("COL2", GetType(Decimal))
dt.Rows.Add(0, 2) dt.Rows.Add(1, 3) dt.Rows.Add(2, 6)
MsgBox("Average: " & CStr(dt.Compute("AVG(COL2)", "")))
'---「式列」を使う方法 Dim dt As New DataTable()
'文字列だと平均を得られないので、実数型にしておく dt.Columns.Add("COL1", GetType(Double)) dt.Columns.Add("COL2", GetType(Double))
dt.Rows.Add(0, 2) dt.Rows.Add(1, 3) dt.Rows.Add(2, 6)
dt.Columns.Add("Col2Avg", GetType(Double), "AVG(COL2)")
MsgBox("Average: " & CStr(dt.Rows(0)("Col2Avg")))
'--- 元の DataTable の定義を変更したくない場合 Dim dt As New DataTable() dt.Columns.Add() dt.Columns.Add()
dt.Rows.Add(0, 2) dt.Rows.Add(1, 3) dt.Rows.Add(2, 6)
'一時的に、実数型に変換するための「式列」を用意する dt.Columns.Add("Column3", GetType(Single), "CONVERT(Column2, 'System.Single')") 'Computeメソッドで集計する MsgBox("Average: " & CStr(dt.Compute("AVG(Column3)", ""))) '一時列を削除して元に戻す dt.Columns.Remove(dt.Columns("Column3")) '--------------------------------
> VB2010にアップデートしてLINQ? Linq は 2008 から使えますし、最新版は 2012 ですが あえてその中間をとっての 2010 選択でしょうか。
# Visual Studio 2013 の足音も聞こえてきたようで。 # http://softwareengineeringplatform.com/articles/visual-studio-2013-at-teched-2013/
|