2 people like it.

worldbank-done.fsx

Comparing university enrollment rate in Czech Republic and OECD countries (works in tryfsharp.org!)

 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
// ---------------------------------------------------------
// Load type provider for World Bank and F# charting library
// ---------------------------------------------------------

open Samples
open Samples.Charting.DojoChart
#r "Samples.WorldBank.dll"

// ---------------------------------------------------------
// Explore university enrollment
// ---------------------------------------------------------

// Create data context connected to WorldBank
let data = WorldBank.GetDataContext()

// Compare some selected countries
let cz = data.Countries.``Czech Republic``.Indicators.``School enrollment, tertiary (% gross)``
let us = data.Countries.``United States``.Indicators.``School enrollment, tertiary (% gross)``

Chart.Combine
  [ Chart.Line(cz)
    Chart.Line(us) ]

// Compare a list of countries
let countries = 
  [ data.Countries.France
    data.Countries.Greece
    data.Countries.``Czech Republic``
    data.Countries.``United Kingdom``
    data.Countries.``European Union`` ]

Chart.Combine
  [ for country in countries ->
      let data = country.Indicators.``Central government debt, total (% of GDP)``
      Chart.Line(data, Name=country.Name) ]

// ---------------------------------------------------------
// Compare university enrolment with OECD
// ---------------------------------------------------------

// Calculate average data for all OECD members
let oecd =
  [ for c in data.Regions.``OECD members``.Countries do
      yield! c.Indicators.``School enrollment, tertiary (% gross)`` ]
  |> Seq.groupBy fst
  |> Seq.map (fun (y, v) -> y, Seq.averageBy snd v)
  |> Array.ofSeq

Chart.Combine
  [ Chart.Line(oecd)
    Chart.Line(us)
    Chart.Line(cz) ]
val data : obj

Full name: Script.data
val cz : obj

Full name: Script.cz
val us : obj

Full name: Script.us
val countries : obj list

Full name: Script.countries
val oecd : (obj * obj) []

Full name: Script.oecd
val c : obj
module Seq

from Microsoft.FSharp.Collections
val groupBy : projection:('T -> 'Key) -> source:seq<'T> -> seq<'Key * seq<'T>> (requires equality)

Full name: Microsoft.FSharp.Collections.Seq.groupBy
val fst : tuple:('T1 * 'T2) -> 'T1

Full name: Microsoft.FSharp.Core.Operators.fst
val map : mapping:('T -> 'U) -> source:seq<'T> -> seq<'U>

Full name: Microsoft.FSharp.Collections.Seq.map
val y : obj
val v : seq<obj * obj>
val averageBy : projection:('T -> 'U) -> source:seq<'T> -> 'U (requires member ( + ) and member DivideByInt and member get_Zero)

Full name: Microsoft.FSharp.Collections.Seq.averageBy
val snd : tuple:('T1 * 'T2) -> 'T2

Full name: Microsoft.FSharp.Core.Operators.snd
module Array

from Microsoft.FSharp.Collections
val ofSeq : source:seq<'T> -> 'T []

Full name: Microsoft.FSharp.Collections.Array.ofSeq
Raw view Test code New version

More information

Link:http://fssnip.net/gZ
Posted:11 years ago
Author:tomasp
Tags: worldbank , type provider , charting , tryfsharp