如何在VB.NET中将DataFrame转换为数据集?
我正在使用R.Net。因为我使用R.Net进行了一些数据库连接,所以我得到了数据帧格式的结果,我需要将其转换为数据集 这是我的密码:如何在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
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