In [1]:
## Introduction to julia

In these series of notebooks, we are going to learn about Julia. These are 
all introductory notes here, essentially getting to know the language,
and in the next session, we are going to cover data analysis and graphics

## Getting Julia


LoadError: syntax: extra token "these" after end of expression
while loading In[1], in expression starting on line 3

In [4]:
using DataFrames, DataArrays, RDatasets

function crosstable(data::DataFrame,col1,col2)
       @assert isa(data[col1],PooledDataArray)
       @assert isa(data[col2],PooledDataArray)
       nres= NamedArray(zeros(Int,length(data[col1].pool),length(data[col2].pool)),Any[data[col1].pool,data[col2].pool],[col1,col2])
       for i=1:nrow(data)
           nres[data[col1].refs[i],data[col2].refs[i]] += 1
       end
       nres
end


WARNING: Base.String is deprecated, use AbstractString instead.
  likely near /Users/arindambose/.julia/v0.4/RDatasets/src/dataset.jl:1
WARNING: Base.String is deprecated, use AbstractString instead.
  likely near /Users/arindambose/.julia/v0.4/RDatasets/src/dataset.jl:1
WARNING: Base.String is deprecated, use AbstractString instead.
  likely near /Users/arindambose/.julia/v0.4/RDatasets/src/datasets.jl:1
Out[4]:
crosstable (generic function with 1 method)

In [5]:
bod = dataset("datasets", "BOD")


Out[5]:
TimeDemand
118.3
2210.3
3319.0
4416.0
5515.6
6719.8

In [13]:
dbin = (bod[:Demand] .>= 15.0)


Out[13]:
6-element DataArrays.DataArray{Bool,1}:
 false
 false
  true
  true
  true
  true

In [10]:
bod


Out[10]:
TimeDemand
118.3
2210.3
3319.0
4416.0
5515.6
6719.8

In [11]:
dbin = :Demand >= 15


LoadError: MethodError: `isless` has no method matching isless(::Symbol, ::Int64)
Closest candidates are:
  isless(!Matched::AbstractFloat, ::Real)
  isless(!Matched::Real, ::Real)
  isless(!Matched::Char, ::Integer)
  ...
while loading In[11], in expression starting on line 1

 in >= at operators.jl:37

In [12]:
dbin = bod[:Demand] > 15


LoadError: MethodError: `isless` has no method matching isless(::Int64, ::DataArrays.DataArray{Float64,1})
Closest candidates are:
  isless(::Real, !Matched::AbstractFloat)
  isless(::Real, !Matched::Real)
  isless(::Integer, !Matched::Char)
  ...
while loading In[12], in expression starting on line 1

 in > at operators.jl:34

In [14]:
bod[:dbin] = dbin


Out[14]:
6-element DataArrays.DataArray{Bool,1}:
 false
 false
  true
  true
  true
  true

In [15]:
crosstable(bod, :Time, :dbin)


LoadError: AssertionError: isa(data[col1],PooledDataArray)
while loading In[15], in expression starting on line 1

 in crosstable at In[4]:4

In [16]:
crosstable(bod, :dbin, :Time)


LoadError: AssertionError: isa(data[col1],PooledDataArray)
while loading In[16], in expression starting on line 1

 in crosstable at In[4]:4

In [17]:
freqtable(bod, :dbin, :Time)


LoadError: UndefVarError: freqtable not defined
while loading In[17], in expression starting on line 1

In [18]:
using Freqtables


WARNING: New definition 
    broadcast(Function, NamedArrays.NamedArray...) at /Users/arindambose/.julia/v0.4/NamedArrays/src/keepnames.jl:47
is ambiguous with: 
    broadcast(Function, DataArrays.PooledDataArray...) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:309.
To fix, define 
    broadcast(Function)
before the new definition.
WARNING: New definition 
    +(AbstractArray{#T1<:Number, #N<:Any}, NamedArrays.NamedArray{#T2<:Number, #N<:Any, AT<:Any, DT<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:34
is ambiguous with: 
    +(DataArrays.DataArray, AbstractArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/operators.jl:326.
To fix, define 
    +(DataArrays.DataArray{#T1<:Number, N<:Any}, NamedArrays.NamedArray{#T2<:Number, N<:Any, AT<:Any, DT<:Any})
before the new definition.
WARNING: New definition 
    +(AbstractArray{#T1<:Number, #N<:Any}, NamedArrays.NamedArray{#T2<:Number, #N<:Any, AT<:Any, DT<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:34
is ambiguous with: 
    +(DataArrays.AbstractDataArray, AbstractArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/operators.jl:349.
To fix, define 
    +(DataArrays.AbstractDataArray{#T1<:Number, N<:Any}, NamedArrays.NamedArray{#T2<:Number, N<:Any, AT<:Any, DT<:Any})
before the new definition.
WARNING: New definition 
    ./(NamedArrays.NamedArray{#T1<:Number, #N<:Any, AT<:Any, DT<:Any}, AbstractArray{#T2<:Number, #N<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:33
is ambiguous with: 
    ./(AbstractArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray}) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:285.
To fix, define 
    ./(NamedArrays.NamedArray{#T1<:Number, N<:Any, AT<:Any, DT<:Any}, Union{DataArrays.PooledDataArray{#T2<:Number, R<:Integer, N<:Any}, DataArrays.DataArray{#T2<:Number, N<:Any}})
before the new definition.
WARNING: New definition 
    ./(AbstractArray{#T1<:Number, #N<:Any}, NamedArrays.NamedArray{#T2<:Number, #N<:Any, AT<:Any, DT<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:34
is ambiguous with: 
    ./(Union{DataArrays.DataArray, DataArrays.PooledDataArray}, AbstractArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:284.
To fix, define 
    ./(Union{DataArrays.PooledDataArray{#T1<:Number, R<:Integer, N<:Any}, DataArrays.DataArray{#T1<:Number, N<:Any}}, NamedArrays.NamedArray{#T2<:Number, N<:Any, AT<:Any, DT<:Any})
before the new definition.
WARNING: New definition 
    ./(NamedArrays.NamedArray, AbstractArray) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:62
is ambiguous with: 
    ./(AbstractArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray}) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:285.
To fix, define 
    ./(NamedArrays.NamedArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray})
before the new definition.
WARNING: New definition 
    .+(NamedArrays.NamedArray{#T1<:Number, #N<:Any, AT<:Any, DT<:Any}, AbstractArray{#T2<:Number, #N<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:33
is ambiguous with: 
    .+(AbstractArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray}, AbstractArray...) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:297.
To fix, define 
    .+(NamedArrays.NamedArray{#T1<:Number, N<:Any, AT<:Any, DT<:Any}, Union{DataArrays.PooledDataArray{#T2<:Number, R<:Integer, N<:Any}, DataArrays.DataArray{#T2<:Number, N<:Any}})
before the new definition.
WARNING: New definition 
    .+(AbstractArray{#T1<:Number, #N<:Any}, NamedArrays.NamedArray{#T2<:Number, #N<:Any, AT<:Any, DT<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:34
is ambiguous with: 
    .+(Union{DataArrays.DataArray, DataArrays.PooledDataArray}, AbstractArray...) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:297.
To fix, define 
    .+(Union{DataArrays.PooledDataArray{#T1<:Number, R<:Integer, N<:Any}, DataArrays.DataArray{#T1<:Number, N<:Any}}, NamedArrays.NamedArray{#T2<:Number, N<:Any, AT<:Any, DT<:Any})
before the new definition.
WARNING: New definition 
    .+(NamedArrays.NamedArray, AbstractArray) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:62
is ambiguous with: 
    .+(AbstractArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray}, AbstractArray...) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:297.
To fix, define 
    .+(NamedArrays.NamedArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray})
before the new definition.
WARNING: New definition 
    .*(NamedArrays.NamedArray{#T1<:Number, #N<:Any, AT<:Any, DT<:Any}, AbstractArray{#T2<:Number, #N<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:33
is ambiguous with: 
    .*(AbstractArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray}, AbstractArray...) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:295.
To fix, define 
    .*(NamedArrays.NamedArray{#T1<:Number, N<:Any, AT<:Any, DT<:Any}, Union{DataArrays.PooledDataArray{#T2<:Number, R<:Integer, N<:Any}, DataArrays.DataArray{#T2<:Number, N<:Any}})
before the new definition.
WARNING: New definition 
    .*(AbstractArray{#T1<:Number, #N<:Any}, NamedArrays.NamedArray{#T2<:Number, #N<:Any, AT<:Any, DT<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:34
is ambiguous with: 
    .*(Union{DataArrays.DataArray, DataArrays.PooledDataArray}, AbstractArray...) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:295.
To fix, define 
    .*(Union{DataArrays.PooledDataArray{#T1<:Number, R<:Integer, N<:Any}, DataArrays.DataArray{#T1<:Number, N<:Any}}, NamedArrays.NamedArray{#T2<:Number, N<:Any, AT<:Any, DT<:Any})
before the new definition.
WARNING: New definition 
    .*(NamedArrays.NamedArray, AbstractArray) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:62
is ambiguous with: 
    .*(AbstractArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray}, AbstractArray...) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:295.
To fix, define 
    .*(NamedArrays.NamedArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray})
before the new definition.
WARNING: New definition 
    -(NamedArrays.NamedArray{#T1<:Number, #N<:Any, AT<:Any, DT<:Any}, AbstractArray{#T2<:Number, #N<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:33
is ambiguous with: 
    -(AbstractArray, DataArrays.DataArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/operators.jl:326.
To fix, define 
    -(NamedArrays.NamedArray{#T1<:Number, N<:Any, AT<:Any, DT<:Any}, DataArrays.DataArray{#T2<:Number, N<:Any})
before the new definition.
WARNING: New definition 
    -(NamedArrays.NamedArray{#T1<:Number, #N<:Any, AT<:Any, DT<:Any}, AbstractArray{#T2<:Number, #N<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:33
is ambiguous with: 
    -(AbstractArray, DataArrays.AbstractDataArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/operators.jl:349.
To fix, define 
    -(NamedArrays.NamedArray{#T1<:Number, N<:Any, AT<:Any, DT<:Any}, DataArrays.AbstractDataArray{#T2<:Number, N<:Any})
before the new definition.
WARNING: New definition 
    -(AbstractArray{#T1<:Number, #N<:Any}, NamedArrays.NamedArray{#T2<:Number, #N<:Any, AT<:Any, DT<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:34
is ambiguous with: 
    -(DataArrays.DataArray, AbstractArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/operators.jl:326.
To fix, define 
    -(DataArrays.DataArray{#T1<:Number, N<:Any}, NamedArrays.NamedArray{#T2<:Number, N<:Any, AT<:Any, DT<:Any})
before the new definition.
WARNING: New definition 
    -(AbstractArray{#T1<:Number, #N<:Any}, NamedArrays.NamedArray{#T2<:Number, #N<:Any, AT<:Any, DT<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:34
is ambiguous with: 
    -(DataArrays.AbstractDataArray, AbstractArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/operators.jl:349.
To fix, define 
    -(DataArrays.AbstractDataArray{#T1<:Number, N<:Any}, NamedArrays.NamedArray{#T2<:Number, N<:Any, AT<:Any, DT<:Any})
before the new definition.
WARNING: New definition 
    -(NamedArrays.NamedArray, AbstractArray) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:62
is ambiguous with: 
    -(AbstractArray, DataArrays.DataArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/operators.jl:326.
To fix, define 
    -(NamedArrays.NamedArray, DataArrays.DataArray)
before the new definition.
WARNING: New definition 
    -(NamedArrays.NamedArray, AbstractArray) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:62
is ambiguous with: 
    -(AbstractArray, DataArrays.AbstractDataArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/operators.jl:349.
To fix, define 
    -(NamedArrays.NamedArray, DataArrays.AbstractDataArray)
before the new definition.
WARNING: New definition 
    .-(NamedArrays.NamedArray{#T1<:Number, #N<:Any, AT<:Any, DT<:Any}, AbstractArray{#T2<:Number, #N<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:33
is ambiguous with: 
    .-(AbstractArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray}) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:285.
To fix, define 
    .-(NamedArrays.NamedArray{#T1<:Number, N<:Any, AT<:Any, DT<:Any}, Union{DataArrays.PooledDataArray{#T2<:Number, R<:Integer, N<:Any}, DataArrays.DataArray{#T2<:Number, N<:Any}})
before the new definition.
WARNING: New definition 
    .-(AbstractArray{#T1<:Number, #N<:Any}, NamedArrays.NamedArray{#T2<:Number, #N<:Any, AT<:Any, DT<:Any}) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:34
is ambiguous with: 
    .-(Union{DataArrays.DataArray, DataArrays.PooledDataArray}, AbstractArray) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:284.
To fix, define 
    .-(Union{DataArrays.PooledDataArray{#T1<:Number, R<:Integer, N<:Any}, DataArrays.DataArray{#T1<:Number, N<:Any}}, NamedArrays.NamedArray{#T2<:Number, N<:Any, AT<:Any, DT<:Any})
before the new definition.
WARNING: New definition 
    .-(NamedArrays.NamedArray, AbstractArray) at /Users/arindambose/.julia/v0.4/NamedArrays/src/arithmetic.jl:62
is ambiguous with: 
    .-(AbstractArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray}) at /Users/arindambose/.julia/v0.4/DataArrays/src/broadcast.jl:285.
To fix, define 
    .-(NamedArrays.NamedArray, Union{DataArrays.DataArray, DataArrays.PooledDataArray})
before the new definition.
WARNING: requiring "Freqtables" in module "Main" did not define a corresponding module.

In [19]:
freqtable(bod, :Time, :dbin)


LoadError: UndefVarError: freqtable not defined
while loading In[19], in expression starting on line 1

In [20]:
Pkg.add("Freqtables")


INFO: Nothing to be done
INFO: METADATA is out-of-date — you may not have the latest version of Freqtables
INFO: Use `Pkg.update()` to get the latest versions of your packages

In [21]:
Pkg.update()


INFO: Updating METADATA...
INFO: Updating cache of FactCheck...
INFO: Updating Tables...
INFO: Updating RCalling...
INFO: Updating FreqTables...
INFO: Computing changes...
INFO: Upgrading FactCheck: v0.4.1 => v0.4.2

In [22]:
using Freqtables


WARNING: replacing module FreqTables
WARNING: requiring "Freqtables" in module "Main" did not define a corresponding module.

In [23]:
freqtable(bod, :Time, :dbin)


LoadError: UndefVarError: freqtable not defined
while loading In[23], in expression starting on line 1

In [ ]: