C# 使用RDotNet创建data.table
我正试图通过RDotNet库将一些R代码脚本转换成C代码。 我能够转换很大一部分,但在C#中创建data.table时出现了一个问题。 以上是我的代码示例:C# 使用RDotNet创建data.table,c#,r,r.net,C#,R,R.net,我正试图通过RDotNet库将一些R代码脚本转换成C代码。 我能够转换很大一部分,但在C#中创建data.table时出现了一个问题。 以上是我的代码示例: Dictionary<string, List<string>> myDic = new Dictionary<string, List<string>>(); // populate the dictionary var colNames = new List<string>()
Dictionary<string, List<string>> myDic = new Dictionary<string, List<string>>();
// populate the dictionary
var colNames = new List<string>() { "col1", "col2"};
IEnumerable[] columns = new IEnumerable[2];
columns[0] = myDic.Keys;
columns[1] = myDic.Values;
var mydata = engine.CreateDataFrame(columns.ToArray(), colNames.ToArray(), stringsAsFactors: false);
Dictionary myDic=newdictionary();
//填充字典
var colNames=new List(){“col1”,“col2”};
IEnumerable[]列=新的IEnumerable[2];
列[0]=myDic.Keys;
第[1]列=myDic.值;
var mydata=engine.CreateDataFrame(columns.ToArray(),colNames.ToArray(),stringsAsFactors:false);
当我使用变量mydata时,出现了一个异常
无法将类型System.Collections.Generic.List`1[System.String][]转换为R向量
是否确实要创建包含每个单元格中字符串列表的dataframe列?这不是在R中创建数据帧的方式。当您将
字典
替换为字典
时,下面的代码起作用
Dictionary myDic=新字典(){
{“a”,“aaaa”},
{“b”,“bbbb”},
{“c”,“cccc”}
};
//填充字典
var colNames=new List(){“col1”,“col2”};
IEnumerable[]列=新的IEnumerable[2];
列[0]=myDic.Keys.ToArray();
列[1]=myDic.Values.ToArray();
REngine engine=REngine.GetInstance();
var mydata=engine.CreateDataFrame(列,colNames.ToArray(),stringsAsFactors:false);
我不会说C#,但函数名为CreateDataFrame
,所以我假设它创建的是data.frame而不是data.table?
Dictionary<string, string> myDic = new Dictionary<string, string>() {
{ "a","aaaa"},
{ "b","bbbb"},
{ "c","cccc"}
};
// populate the dictionary
var colNames = new List<string>() { "col1", "col2" };
IEnumerable[] columns = new IEnumerable[2];
columns[0] = myDic.Keys.ToArray();
columns[1] = myDic.Values.ToArray();
REngine engine = REngine.GetInstance();
var mydata = engine.CreateDataFrame(columns, colNames.ToArray(), stringsAsFactors: false);