Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VB.NET中将DataFrame转换为数据集?_Vb.net_R - Fatal编程技术网

如何在VB.NET中将DataFrame转换为数据集?

如何在VB.NET中将DataFrame转换为数据集?,vb.net,r,Vb.net,R,我正在使用R.Net。因为我使用R.Net进行了一些数据库连接,所以我得到了数据帧格式的结果,我需要将其转换为数据集 这是我的密码: REngine.SetDllDirectory("@C:\Program Files\R\R-2.12.0\bin\i386") engine = REngine.CreateInstance("RDotNet") engine.EagerEvaluate("library(RODBC);") engine.EagerEvaluat

我正在使用R.Net。因为我使用R.Net进行了一些数据库连接,所以我得到了数据帧格式的结果,我需要将其转换为数据集

这是我的密码:

    REngine.SetDllDirectory("@C:\Program Files\R\R-2.12.0\bin\i386")
    engine = REngine.CreateInstance("RDotNet")
    engine.EagerEvaluate("library(RODBC);")
    engine.EagerEvaluate("con <- odbcConnect(dsn='rdsn', uid = 'sa', pwd = 'surya');")


    cmdStr = SELECT DISTINCT Investment.InvestmentTypeCode,InvestmentTypeDescription,     SortID  FROM Investment,InvestmentTypeDef WHERE(Investment.InvestmentTypeCode = InvestmentTypeDef.InvestmentTypeCode) ORDER BY SortID

   engine.EagerEvaluate("frm <- sqlQuery(con, '" + cmdStr + "');")

   engine.GetSymbol("frm").AsDataFrame()
REngine.SetDllDirectory(@C:\ProgramFiles\R\R-2.12.0\bin\i386)
engine=REngine.CreateInstance(“RDotNet”)
engine.exe(“库(RODBC);”)

engine.com(“con在R.Net或.Net Framework中没有内置的功能可以做到这一点。但是您可以通过编程方式创建和填充数据集。因此,您必须编写自己的转换代码

见:

我最近不得不将RDataFrame转换为C#中的标准数据表-我假设所有列都包含双精度:

public static DataTable RDataFrameToDataSet(DataFrame resultsMatrix) {

        var dt = new DataTable();
        var columns = new DataColumn[resultsMatrix.ColumnCount];

        for (int i = 0; i < resultsMatrix.ColumnCount; i++) {
            columns[i] = new DataColumn(resultsMatrix.ColumnNames[i], typeof(double));
        }

        dt.Columns.AddRange(columns);

        for (int y = 0; y < resultsMatrix.RowCount; y++) {
            var dr = dt.NewRow();
            for (int x = 0; x < resultsMatrix.ColumnCount; x++) {
                try {
                    dr[x] = resultsMatrix[y, x];
                }
                catch (Exception ex) {
                    Console.WriteLine(ex.Message);
                }
            }
            dt.Rows.Add(dr);
        }

        return dt;
    }
公共静态数据表RDataFrameToDataSet(数据帧结果矩阵){
var dt=新数据表();
var columns=新数据列[resultsMatrix.ColumnCount];
对于(int i=0;i