F#R类型提供程序和cbind
我希望使用可视化数据,但最初我需要通过F#R类型提供程序和cbind,r,f#,type-providers,R,F#,Type Providers,我希望使用可视化数据,但最初我需要通过R.cbind将它们组合起来 我有两个像这样的分位数数组quantiles1和quantiles2 val it : double [] = [|9.493529797e-05; 0.00356456441; 0.006148920477; 0.01201379844; 0.04056193231; 0.1144207457; 0.3402441047; 0.7572200933; 1.432890804; 2.755986279|]
R.cbind
将它们组合起来
我有两个像这样的分位数数组quantiles1
和quantiles2
val it : double [] =
[|9.493529797e-05; 0.00356456441; 0.006148920477; 0.01201379844;
0.04056193231; 0.1144207457; 0.3402441047; 0.7572200933; 1.432890804;
2.755986279|]
当我打电话时
R.cbind(quantiles1, quantiles2)
结果是
val it : SymbolicExpression =
...
[1,] 0.0000949353
[2,] 0.0035645644
[3,] 0.0061489205
[4,] 0.0120137984
[5,] 0.0405619323
[6,] 0.1144207457
[7,] 0.3402441047
[8,] 0.7572200933
[9,] 1.4328908043
[10,] 2.7559862789
但我希望这里有两个专栏。
在F#type provider中,我应该如何使用
cbind
获得正确的结果?这应该适用于您:
let x12 = R.cbind(namedParams ["x1", box x1; "x2", box x2])
R.dim(x12)
// val it : SymbolicExpression = [1] 10 2
原因是R.cbind需要以下类型:
编辑
如果助手函数变得太单调,您可以创建它
let makeRParams (xs:#seq<_>) =
xs
|> Seq.mapi (fun i x -> ("x"+i.ToString(),box x))
|> dict
let makeRParams(xs:#seq)=
xs
|>Seq.mapi(乐趣i x->(“x”+i.ToString(),方框x))
|>口述
太好了,谢谢您的回答。。。我尝试过类似的方法,但我不知道这些变量可以这样命名namedParams@JozefCechovsky我还想知道是否有更好的方法,但通常我最终还是会传递数据帧,这些数据帧已经指定了名称。我添加了一个helper函数,它将给变量一个名称,并将它们装箱。这样,您就可以跳过namedParams
无意义,R将接受字典。