私はRdotnetを使ってvb.NETに自分のRスクリプトを実装しようとしています。まず、データベースからSQLストアドプロシージャを呼び出して、データの前処理を実行します。これにより、vb.NETのDataTableオブジェクトが得られます。次に、Rdotnetを使用してR関数を実行し、それ以降の処理を行います。私のRスクリプトはデータフレームオブジェクトだけを読み込むことができるので、私はRdotnetのCreateDataFrame関数を使ってデータフレームオブジェクトを作成しようとします。私を許してください。しかし、データの機密性のために実際のデータを提供することはできません。私は、エラーメッセージを表示しますR.NetのCreateDataFrame
Public Function Detect_Gridlock(ByVal data As DataTable)
Dim engine As REngine = REngine.GetInstance()
engine.Initialize()
Dim columns As IEnumerable = data.Columns
Dim tableDF As DataFrame = engine.CreateDataFrame(columns, colList(data))
Return tableDF
End Function
Public Function colList(ByVal data As DataTable)
Dim colNames(data.Columns.Count) As String
Dim i As Integer = 1
For Each column As DataColumn In data.Columns
colNames(i) = column.ColumnName
Next
Return colNames
End Function
:「System.Collections.IEnumerable []」を入力するタイプ「System.Data.DataColumnCollection」のオブジェクトをキャストすること できません。
カラムのmyカラムデータとカラム名であるcolList(data)はコレクションの形式ですが、たぶん、あなたは
Dim columns() as IEnumerable
Dim tableDF As DataFrame = engine.CreateDataFrame(columns.Cast(Of IEnumerable()), colList(data))
代わりの
Dim columns as IEnumerable
Dim tableDF As DataFrame = engine.CreateDataFrame(columns, colList(data))
を使用することができます