数据帧快速到数据表r.net [英] Dataframe to datatable r.net fastly

查看:80
本文介绍了数据帧快速到数据表r.net的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否有更好的方法将数据网从rnet转换为system.data或类似的数据表. 目前,我正在做的是

I would like to know if there is a better method to convert a datanet from rnet to a datatable of system.data or something like that. Currently, what I'm doing is

Dataframe dataset = engine.evaluate ("some dataframe"). AsDataframe ();
DataTable dtable = new DataTable ();

  For (int i = 0; i <dataset.ColumnCount; ++ i)
             {
                 Dtable.Columns.Add (dataset.ColumnNames [i]);
             }

             For (int k = 0; k <dataset.RowCount; ++ k)
             {
                 Dtable.Rows.Add (dataset.GetRow (k) .DataFrame);

             }

             For (int i = 0; i <dataset.RowCount; i ++)
             {
                 For (int j = 0; j <dataset.ColumnCount; j ++)
                 {
                     Dtable.Rows [i] [j] = dataset [i, j];
                 }
             }

但是,该方法非常慢,想知道是否还有另一种方法更快.

However, the method is very slow and wanted to know if there is another method faster.

致谢

推荐答案

您可以轻松消除一个for循环

You can easily eliminate one for loop

Dataframe dataset = engine.evaluate ("some dataframe"). AsDataframe ();
DataTable dtable = new DataTable ();

For (int i = 0; i <dataset.ColumnCount; ++ i)
{
   Dtable.Columns.Add (dataset.ColumnNames [i]);
}


For (int i = 0; i <dataset.RowCount; i ++)
{
   DataRow newRow = Dtable.Rows.Add();
   For (int j = 0; j <dataset.ColumnCount; j ++)
   {
      newRow[j] = dataset [i, j];
   }
}

这篇关于数据帧快速到数据表r.net的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆