问题
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.
regards
回答1:
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];
}
}
来源:https://stackoverflow.com/questions/45537671/dataframe-to-datatable-r-net-fastly