Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module SOQN =
- open System
- open MathNet.Numerics.Statistics
- let tmp = [| 13.0; 17.0; 23.0; 11.0; 11.0; 13.0; 31.0; 19.0; 47.0; 29.0; 29.0; 19.0; 43.0; 37.0 |]
- let tmpPrcntls =
- tmp
- |> Array.sort
- let lbls = [| "p0"; "p1"; "p2"; "p3"; "p4";"p5" |]
- let prcntls = [| Statistics.Percentile(tmpPrcntls,0) // 11.0
- Statistics.Percentile(tmpPrcntls,20) // 13.0
- Statistics.Percentile(tmpPrcntls,40) // 19.0
- Statistics.Percentile(tmpPrcntls,60) // 28.6
- Statistics.Percentile(tmpPrcntls,80) // 35.8
- Statistics.Percentile(tmpPrcntls,100) // 47.0
- |]
- let lkpTbl = Map(Array.zip prcntls lbls)
- let tmpRplcd:string[] =
- tmp
- |> Array.map2 (fun x y -> if x <= y then lkpTbl.[y] else "") prcntls
- let main =
- printfn ""
- printfn "Percentile Test"
- printfn ""
- printfn "tmpPrcntls: %A" tmpPrcntls
- printfn "prcntls:%A" prcntls
- printfn "tmpRplcd:%A" tmpRplcd
- 0
- [<EntryPoint>]
- main
- |> ignore
- // Expected Result:
- // tmpRplcd = [| "p1"; "p2"; "p3"; "p0"; "p0"; "p1"; "p4"; "p2"; "p5"; "p4"; "p4"; "p2"; "p5"; "p5" |]
Add Comment
Please, Sign In to add comment