C# 变量不是组C中允许的类型
我正在尝试使我的代码与以下代码的功能相匹配:C# 变量不是组C中允许的类型,c#,C#,我正在尝试使我的代码与以下代码的功能相匹配: var data = new Dictionary<string, object>() { { "state", new string[] { "Ohio", "Ohio", "Ohio", "Nevada", "Nevada" } }, { "year", new int[] { 2000, 2001, 2002, 2001, 2002 } },
var data = new Dictionary<string, object>() {
{ "state", new string[] { "Ohio", "Ohio", "Ohio", "Nevada", "Nevada" } },
{ "year", new int[] { 2000, 2001, 2002, 2001, 2002 } },
{ "pop", new double[] { 1.5, 1.7, 3.6, 2.4, 2.9 } }
};
我当前的代码:
var data = new Dictionary<string, object>() {
{ "targetValue", calc.ListCalculationData.Select(i => i.MRTargetValue).ToArray<decimal>() },
{ "ema12", calc.ListCalculationData.Select(i => i.Ema12).ToArray<decimal>() },
{ "ema26", calc.ListCalculationData.Select(i => i.Ema26).ToArray<decimal>() },
{ "ema", calc.ListCalculationData.Select(i => i.Ema).ToArray<decimal>() }
};
var df1 = DataFrame.FromColumns(data);
var model2 = new LinearRegressionModel(df1, "targetValue ~ ema12 + ema26 + ema"); <= This line gives me the error
我从我使用的api中得到以下错误,这是极端优化C api,下面是参考url:
变量不是组中允许的类型。我没有看到任何使用decimal类型的文档或示例,但我无法验证,因为我没有访问库的权限 有一些例子使用了双重类型。如果精度可以接受,这可能是一种选择。尝试这样定义数据变量,在选择中转换为双精度,然后转换为数组:
var data = new Dictionary<string, object>() {
{ "targetValue", calc.ListCalculationData.Select(i => (double)i.MRTargetValue).ToArray() },
{ "ema12", calc.ListCalculationData.Select(i => (double)i.Ema12).ToArray() },
{ "ema26", calc.ListCalculationData.Select(i => (double)i.Ema26).ToArray() },
{ "ema", calc.ListCalculationData.Select(i => (double)i.Ema).ToArray() }
};
为什么不把它做成字典呢?小数的计算和其他浮点类型的计算有很大的不同。很可能图书馆不支持他们。Try.Cast.ToArray@CaiusJard我试过了,但在var dfi行参数1处收到了此错误消息:无法从“System.Collections.Generic.Dictionary”转换为“System.Collections.Generic.IDictionary”@jeroenmoster calc.ListCalculationData.Selecti=>I.Ema是一个IEnumerablew,这是哪一行给您的错误?