变量不是C#组中允许的那种变量

时间:2017-08-31 23:57:10

标签: c#

我正在尝试使用我的代码来匹配以下代码:

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,这里是参考网址:http://www.extremeoptimization.com/QuickStart/CSharp/DataFrames.aspx

该变量不属于该组中允许的类型。

1 个答案:

答案 0 :(得分:1)

我没有看到使用decimal类型的任何文档或示例,但我无法验证,因为我无法访问该库。

有一些使用double类型的示例。如果15-16 digits的精度可以接受,那么这可能是一种选择。尝试定义这样的data变量,转换为double中的Select,然后转换为数组:

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() }
                            };