SymbolicExpression - 字符串

时间:2016-06-23 13:51:27

标签: f#

我在F#中使用RProvider来计算我的数据的一些统计信息。当我调用R函数时,它返回SymbolicExpression type,但是从这种类型解析数据真的很困难。在我的代码中,我计算像这样的分位数

let seq = R.seq(namedParams ["from", box 0;"to", box 1;"length", box 11;])
let quantiles = R.quantile(namedParams ["x", box dataWithoutNan1; "prob", box seq; "type", box 5;])

然后,分位数的类型为SymbolicExpression。

val quantiles : SymbolicExpression =
            0%          10%          20%          30%          40%          50% 
0.000000e+00 3.203978e-03 5.366154e-03 1.101344e-02 8.259162e-02 4.533620e-01 
         60%          70%          80%          90%         100% 
1.278446e+00 2.706468e+00 4.927400e+00 1.141095e+01 8.944235e+02 

SymbolicExpression类型具有成员Value

let quantilesValue = quantiles.Value

,它的类型为obj

val quantilesValue : obj =
  [|0.0; 0.003203978402; 0.00536615421; 0.01101343569; 0.08259161954;
    0.4533619823; 1.278445928; 2.706467538; 4.927399755; 11.41095162;
    894.4234507|]

我要做的是打印这些值,如

  

0.0; 0.003203978402; 0.00536615421; 0.01101343569; 0.08259161954;           0.4533619823; 1.278445928; 2.706467538; 4.927399755; 11.41095162;           894.4234507

我尝试将这些对象转换为Seq或List,但我无法执行此操作。 知道如何以一种简单的方式从SymbolicExpression获取值吗?

1 个答案:

答案 0 :(得分:1)

这些代码适用于此问题

let quantiles = R.quantile(namedParams ["x", box dataWithoutNan1; "prob", box seq; "type", box 5;]).GetValue<double[]>()

let quantiles = R.quantile(namedParams ["x", box dataWithoutNan1; "prob", box seq; "type", box 5;]).GetValue<list<double>>()