In [1]:
## Print the working directory on this computer
pwd()


Out[1]:
"/Users/arindambose/Documents/julia"

In [4]:
## list the files in the working directory
readdir()


Out[4]:
13-element Array{ByteString,1}:
 ".ipynb_checkpoints"            
 "GTD-Export.csv"                
 "Tutorial.jl"                   
 "cofreewy.txt"                  
 "health.csv"                    
 "juliamaterials.ipynb"          
 "learnJlsanders.ipynb"          
 "learning.jl"                   
 "learningJulia.ipynb"           
 "myplot.png"                    
 "terrorism-analysis-julia.ipynb"
 "testing.jl"                    
 "tryingjulia.ipynb"             

In [15]:
## read the GTD-export.csv file and import to a data frame. 
# Load the DataFrames package, Distributions pakage, and HypothesisTests package
using DataFrames, Distributions, HypothesisTests, StatsBase, StatsFuns

mydata = DataFrame(readcsv("GTD-Export.csv"))

## Simple preprocessing data
## we now need to delete the second row
## we also will rename the x1 ... x7

## First rename the variables

mydata = rename!(mydata, Dict(:x1 => :Gtdid,
:x2=>:Date, :x3=>:country, :x4=>:city, 
:x5=>:perpetrator, :x11=>:fatalities, 
:x12=>:injured, :x17=>:attacktype,
:x20=>:weapon))

## next, remove the row 1 from the data set

mydata = deleterows!(mydata, 1)

## next, we remove the unwanted columns x6..x10, x13...x16,
## x18, x19,x21...x24

mydata = delete!(mydata, [:x6, :x7, :x8, 
    :x9, :x10, :x13, :x14, :x15, :x16,
    :x18, :x19, :x21, :x22, :x23, :x24])


Out[15]:
GtdidDatecountrycityperpetratorfatalitiesinjuredattacktypeweapon
12014040900052014-04-09PakistanIslamabadUnited Baloch Army (UBA)
22014031400272014-03-14PakistanSarabandTehrik-i-Taliban Pakistan (TTP)1350Bombing/ExplosionExplosives/Bombs/Dynamite
32014012100022014-01-21PakistanMastung districtLashkar-e-Jhangvi3031Bombing/ExplosionExplosives/Bombs/Dynamite
42013080800112013-08-08PakistanQuettaTehrik-i-Taliban Pakistan (TTP)3950Bombing/ExplosionExplosives/Bombs/Dynamite
52013063000012013-06-30PakistanBadaberTehrik-i-Taliban Pakistan (TTP)2050Bombing/ExplosionExplosives/Bombs/Dynamite
62013061800012013-06-18PakistanMardanUnknown3543Bombing/ExplosionExplosives/Bombs/Dynamite
72013051200112013-05-12PakistanQuettaLashkar-e-Jhangvi1176AssassinationExplosives/Bombs/Dynamite
82013050700042013-05-06PakistanParachinarTehrik-i-Taliban Pakistan (TTP)2370Bombing/ExplosionExplosives/Bombs/Dynamite
92013042900012013-04-29PakistanPeshawarUnknown943Bombing/ExplosionExplosives/Bombs/Dynamite
102013042600012013-04-26PakistanKarachiTehrik-i-Taliban Pakistan (TTP)1140Bombing/ExplosionExplosives/Bombs/Dynamite
112013041600032013-04-16PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1860Bombing/ExplosionExplosives/Bombs/Dynamite
122013022100032013-02-21IndiaHyderabadLashkar-e-Taiba (LeT)858Bombing/ExplosionExplosives/Bombs/Dynamite
132013022100022013-02-21IndiaHyderabadLashkar-e-Taiba (LeT)858Bombing/ExplosionExplosives/Bombs/Dynamite
142013011000032013-01-10PakistanQuettaUnited Baloch Army (UBA)1250Bombing/ExplosionExplosives/Bombs/Dynamite
152012121500012012-12-15PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1440Bombing/ExplosionExplosives/Bombs/Dynamite
162012112500012012-11-25PakistanDera Ismail KhanTehrik-i-Taliban Pakistan (TTP)583Bombing/ExplosionExplosives/Bombs/Dynamite
172012112200012012-11-21PakistanRawalpindiTehrik-i-Taliban Pakistan (TTP)2562Bombing/ExplosionExplosives/Bombs/Dynamite
182012091000022012-09-10PakistanParachinarTehrik-i-Taliban Pakistan (TTP)1470Bombing/ExplosionExplosives/Bombs/Dynamite
192012061600022012-06-16PakistanLandi KotalUnknown2550Bombing/ExplosionExplosives/Bombs/Dynamite
202012051400022012-05-14PakistanQuettaBaloch Republican Army (BRA)658Bombing/ExplosionExplosives/Bombs/Dynamite
212012050400012012-05-04PakistanKharTehrik-i-Taliban Pakistan (TTP)2140Bombing/ExplosionExplosives/Bombs/Dynamite
222012031100072012-03-11PakistanBadaberTehrik-i-Taliban Pakistan (TTP)1835Bombing/ExplosionExplosives/Bombs/Dynamite
232012011000022012-01-10PakistanJamrudTehrik-i-Taliban Pakistan (TTP)3560Bombing/ExplosionExplosives/Bombs/Dynamite
242011092000022011-09-20PakistanQuettaLashkar-e-Jhangvi2630Armed AssaultFirearms
252011082000022011-08-20PakistanKarachiUnknown850Armed AssaultFirearms
262011071300092011-07-13IndiaMumbaiIndian Mujahideen744Bombing/ExplosionExplosives/Bombs/Dynamite
272011061100062011-06-11PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1840Bombing/ExplosionExplosives/Bombs/Dynamite
282011061100052011-06-11PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1840Bombing/ExplosionExplosives/Bombs/Dynamite
292011050300192011-05-03IndiaLohardagaCommunist Party of India - Maoist (CPI-Maoist)1140Bombing/ExplosionExplosives/Bombs/Dynamite
302011030900202011-03-09PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)2650Bombing/ExplosionExplosives/Bombs/Dynamite
&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip

In [16]:
mydata


Out[16]:
GtdidDatecountrycityperpetratorfatalitiesinjuredattacktypeweapon
12014040900052014-04-09PakistanIslamabadUnited Baloch Army (UBA)
22014031400272014-03-14PakistanSarabandTehrik-i-Taliban Pakistan (TTP)1350Bombing/ExplosionExplosives/Bombs/Dynamite
32014012100022014-01-21PakistanMastung districtLashkar-e-Jhangvi3031Bombing/ExplosionExplosives/Bombs/Dynamite
42013080800112013-08-08PakistanQuettaTehrik-i-Taliban Pakistan (TTP)3950Bombing/ExplosionExplosives/Bombs/Dynamite
52013063000012013-06-30PakistanBadaberTehrik-i-Taliban Pakistan (TTP)2050Bombing/ExplosionExplosives/Bombs/Dynamite
62013061800012013-06-18PakistanMardanUnknown3543Bombing/ExplosionExplosives/Bombs/Dynamite
72013051200112013-05-12PakistanQuettaLashkar-e-Jhangvi1176AssassinationExplosives/Bombs/Dynamite
82013050700042013-05-06PakistanParachinarTehrik-i-Taliban Pakistan (TTP)2370Bombing/ExplosionExplosives/Bombs/Dynamite
92013042900012013-04-29PakistanPeshawarUnknown943Bombing/ExplosionExplosives/Bombs/Dynamite
102013042600012013-04-26PakistanKarachiTehrik-i-Taliban Pakistan (TTP)1140Bombing/ExplosionExplosives/Bombs/Dynamite
112013041600032013-04-16PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1860Bombing/ExplosionExplosives/Bombs/Dynamite
122013022100032013-02-21IndiaHyderabadLashkar-e-Taiba (LeT)858Bombing/ExplosionExplosives/Bombs/Dynamite
132013022100022013-02-21IndiaHyderabadLashkar-e-Taiba (LeT)858Bombing/ExplosionExplosives/Bombs/Dynamite
142013011000032013-01-10PakistanQuettaUnited Baloch Army (UBA)1250Bombing/ExplosionExplosives/Bombs/Dynamite
152012121500012012-12-15PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1440Bombing/ExplosionExplosives/Bombs/Dynamite
162012112500012012-11-25PakistanDera Ismail KhanTehrik-i-Taliban Pakistan (TTP)583Bombing/ExplosionExplosives/Bombs/Dynamite
172012112200012012-11-21PakistanRawalpindiTehrik-i-Taliban Pakistan (TTP)2562Bombing/ExplosionExplosives/Bombs/Dynamite
182012091000022012-09-10PakistanParachinarTehrik-i-Taliban Pakistan (TTP)1470Bombing/ExplosionExplosives/Bombs/Dynamite
192012061600022012-06-16PakistanLandi KotalUnknown2550Bombing/ExplosionExplosives/Bombs/Dynamite
202012051400022012-05-14PakistanQuettaBaloch Republican Army (BRA)658Bombing/ExplosionExplosives/Bombs/Dynamite
212012050400012012-05-04PakistanKharTehrik-i-Taliban Pakistan (TTP)2140Bombing/ExplosionExplosives/Bombs/Dynamite
222012031100072012-03-11PakistanBadaberTehrik-i-Taliban Pakistan (TTP)1835Bombing/ExplosionExplosives/Bombs/Dynamite
232012011000022012-01-10PakistanJamrudTehrik-i-Taliban Pakistan (TTP)3560Bombing/ExplosionExplosives/Bombs/Dynamite
242011092000022011-09-20PakistanQuettaLashkar-e-Jhangvi2630Armed AssaultFirearms
252011082000022011-08-20PakistanKarachiUnknown850Armed AssaultFirearms
262011071300092011-07-13IndiaMumbaiIndian Mujahideen744Bombing/ExplosionExplosives/Bombs/Dynamite
272011061100062011-06-11PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1840Bombing/ExplosionExplosives/Bombs/Dynamite
282011061100052011-06-11PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1840Bombing/ExplosionExplosives/Bombs/Dynamite
292011050300192011-05-03IndiaLohardagaCommunist Party of India - Maoist (CPI-Maoist)1140Bombing/ExplosionExplosives/Bombs/Dynamite
302011030900202011-03-09PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)2650Bombing/ExplosionExplosives/Bombs/Dynamite
&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip

In [17]:
## Let's describe this data set

describe(mydata)


Gtdid
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  75

Date
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  70

country
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  4

city
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  42

perpetrator
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  12

fatalities
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  33

injured
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  27

attacktype
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  7

weapon
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  4


In [18]:
using DataArrays

In [19]:
describe(mydata[:weapon])


Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  4

In [20]:
stack(mydata[:weapon])


LoadError: MethodError: `stack` has no method matching stack(::Array{Any,1})
while loading In[20], in expression starting on line 1

In [21]:
countmap(mydata[:weapon])


Out[21]:
Dict{Any,Int64} with 4 entries:
  "Incendiary"             => 1
  "Explosives/Bombs/Dynam… => 66
  ""                       => 2
  "Firearms"               => 6

In [24]:
cityattack = proportionmap(mydata[:city])


Out[24]:
Dict{Any,Float64} with 42 entries:
  "Murkongselek"     => 0.013333333333333334
  "Charsadda"        => 0.013333333333333334
  "Mumbai"           => 0.013333333333333334
  "Parachinar"       => 0.04
  "Vavuniya"         => 0.013333333333333334
  "Khar"             => 0.013333333333333334
  "Badaber"          => 0.02666666666666667
  "Dera Ghazi Khan"  => 0.02666666666666667
  "Multan"           => 0.013333333333333334
  "Hyderabad"        => 0.02666666666666667
  "Mullaitivu"       => 0.013333333333333334
  "Saraband"         => 0.013333333333333334
  "Unknown"          => 0.02666666666666667
  "Lohardaga"        => 0.013333333333333334
  "Mingora"          => 0.013333333333333334
  "Colombo"          => 0.013333333333333334
  "Tangmarg"         => 0.013333333333333334
  "Kokrajhar"        => 0.013333333333333334
  "Rani Bodli"       => 0.013333333333333334
  "Sugandirapuram"   => 0.013333333333333334
  "Mastung district" => 0.013333333333333334
  "Lahore"           => 0.06666666666666667
  "Wana"             => 0.013333333333333334
  "Orakzai district" => 0.013333333333333334
  "Guwahati"         => 0.02666666666666667
  ⋮                  => ⋮

In [25]:
cityattack*100


LoadError: MethodError: `*` has no method matching *(::Dict{Any,Float64}, ::Int64)
Closest candidates are:
  *(::Any, ::Any, !Matched::Any, !Matched::Any...)
  *{T<:Number}(!Matched::Bool, ::T<:Number)
  *(!Matched::Complex{Bool}, ::Real)
  ...
while loading In[25], in expression starting on line 1

In [26]:
cityattack[1]


LoadError: KeyError: 1 not found
while loading In[26], in expression starting on line 1

 in getindex at dict.jl:718

In [27]:
cityattack[:1]


LoadError: KeyError: 1 not found
while loading In[27], in expression starting on line 1

 in getindex at dict.jl:718

In [28]:
?Dict


search: 
Out[28]:
..  Dict([itr])

``Dict{K,V}()`` constructs a hash table with keys of type ``K`` and values of type ``V``.

Given a single iterable argument, constructs a :obj:`Dict` whose key-value pairs
are taken from 2-tuples ``(key,value)`` generated by the argument.

.. doctest::

  julia> Dict([("A", 1), ("B", 2)])
  Dict{ASCIIString,Int64} with 2 entries:
    "B" => 2
    "A" => 1

Alternatively, a sequence of pair arguments may be passed.

.. doctest::

  julia> Dict("A"=>1, "B"=>2)
  Dict{ASCIIString,Int64} with 2 entries:
    "B" => 2
    "A" => 1
Dict predict predict! indicatormat DirectIndexString WeakKeyDict


In [29]:
?count


search: 
Out[29]:
count(p, itr) -> Integer

Count the number of elements in itr for which predicate p returns true.

count counts countnz countne counteq countmap countfrom countlines


In [30]:
?counts


search: 
Out[30]:

No documentation found.

StatsBase.counts is a generic Function.

# 16 methods for generic function "counts":
counts(x::AbstractArray{T<:Integer,N}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:54
counts(x::AbstractArray{T<:Integer,N}, levels::UnitRange{T<:Integer}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:50
counts(x::AbstractArray{T<:Integer,N}, levels::UnitRange{T<:Integer}, wv::StatsBase.WeightVec{W,Vec<:AbstractArray{T<:Real,1}}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:51
counts(x::AbstractArray{T<:Integer,N}, k::Integer) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:52
counts(x::AbstractArray{T<:Integer,N}, k::Integer, wv::StatsBase.WeightVec{W,Vec<:AbstractArray{T<:Real,1}}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:53
counts(x::AbstractArray{T<:Integer,N}, wv::StatsBase.WeightVec{W,Vec<:AbstractArray{T<:Real,1}}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:55
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:144
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}, levels::Tuple{UnitRange{T<:Integer},UnitRange{T<:Integer}}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:130
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}, levels::Tuple{UnitRange{T<:Integer},UnitRange{T<:Integer}}, wv::StatsBase.WeightVec{W,Vec<:AbstractArray{T<:Real,1}}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:134
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}, levels::UnitRange{T<:Integer}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:137
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}, levels::UnitRange{T<:Integer}, wv::StatsBase.WeightVec{W,Vec<:AbstractArray{T<:Real,1}}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:138
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}, ks::Tuple{Integer,Integer}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:140
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}, ks::Tuple{Integer,Integer}, wv::StatsBase.WeightVec{W,Vec<:AbstractArray{T<:Real,1}}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:141
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}, k::Integer) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:142
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}, k::Integer, wv::StatsBase.WeightVec{W,Vec<:AbstractArray{T<:Real,1}}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:143
counts(x::AbstractArray{T<:Integer,N}, y::AbstractArray{T<:Integer,N}, wv::StatsBase.WeightVec{W,Vec<:AbstractArray{T<:Real,1}}) at /Users/arindambose/.julia/v0.4/StatsBase/src/counts.jl:145
counts addcounts! countlines count_ones count_zeros


In [31]:
count(cityattack)


LoadError: MethodError: `count` has no method matching count(::Dict{Any,Float64})
Closest candidates are:
  count(::Any, !Matched::AbstractArray{T,N})
  count(::Any, !Matched::Any)
while loading In[31], in expression starting on line 1

In [32]:
for (k,v) in cityattack
    println("k", "v")
end


kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv
kv

In [33]:
cityattack[1
]


LoadError: KeyError: 1 not found
while loading In[33], in expression starting on line 1

 in getindex at dict.jl:718

In [34]:
cityattack[:1]


LoadError: KeyError: 1 not found
while loading In[34], in expression starting on line 1

 in getindex at dict.jl:718

In [35]:
cityattack[:1,:1]


LoadError: KeyError: (1,1) not found
while loading In[35], in expression starting on line 1

 in getindex at dict.jl:291

In [36]:
cityattack


Out[36]:
Dict{Any,Float64} with 42 entries:
  "Murkongselek"     => 0.013333333333333334
  "Charsadda"        => 0.013333333333333334
  "Mumbai"           => 0.013333333333333334
  "Parachinar"       => 0.04
  "Vavuniya"         => 0.013333333333333334
  "Khar"             => 0.013333333333333334
  "Badaber"          => 0.02666666666666667
  "Dera Ghazi Khan"  => 0.02666666666666667
  "Multan"           => 0.013333333333333334
  "Hyderabad"        => 0.02666666666666667
  "Mullaitivu"       => 0.013333333333333334
  "Saraband"         => 0.013333333333333334
  "Unknown"          => 0.02666666666666667
  "Lohardaga"        => 0.013333333333333334
  "Mingora"          => 0.013333333333333334
  "Colombo"          => 0.013333333333333334
  "Tangmarg"         => 0.013333333333333334
  "Kokrajhar"        => 0.013333333333333334
  "Rani Bodli"       => 0.013333333333333334
  "Sugandirapuram"   => 0.013333333333333334
  "Mastung district" => 0.013333333333333334
  "Lahore"           => 0.06666666666666667
  "Wana"             => 0.013333333333333334
  "Orakzai district" => 0.013333333333333334
  "Guwahati"         => 0.02666666666666667
  ⋮                  => ⋮

In [37]:
keys(cityattack)


Out[37]:
Base.KeyIterator for a Dict{Any,Float64} with 42 entries. Keys:
  "Murkongselek"
  "Charsadda"
  "Mumbai"
  "Parachinar"
  "Vavuniya"
  "Khar"
  "Badaber"
  "Dera Ghazi Khan"
  "Multan"
  "Hyderabad"
  "Mullaitivu"
  "Saraband"
  "Unknown"
  "Lohardaga"
  "Mingora"
  "Colombo"
  "Tangmarg"
  "Kokrajhar"
  "Rani Bodli"
  "Sugandirapuram"
  "Mastung district"
  "Lahore"
  "Wana"
  "Orakzai district"
  ⋮

In [38]:
values(cityattack)


Out[38]:
Base.ValueIterator for a Dict{Any,Float64} with 42 entries. Values:
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.04
  0.013333333333333334
  0.013333333333333334
  0.02666666666666667
  0.02666666666666667
  0.013333333333333334
  0.02666666666666667
  0.013333333333333334
  0.013333333333333334
  0.02666666666666667
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.06666666666666667
  0.013333333333333334
  0.013333333333333334
  ⋮

In [39]:
values(cityattack)*100


LoadError: MethodError: `*` has no method matching *(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  *(::Any, ::Any, !Matched::Any, !Matched::Any...)
  *{T<:Number}(!Matched::Bool, ::T<:Number)
  *(!Matched::Complex{Bool}, ::Real)
  ...
while loading In[39], in expression starting on line 1

In [40]:
myvals = Array(values(cityattack))


LoadError: MethodError: `convert` has no method matching convert(::Type{Array{T,N}}, ::Base.ValueIterator{Dict{Any,Float64}})
This may have arisen from a call to the constructor Array{T,N}(...),
since type constructors fall back to convert methods.
Closest candidates are:
  call{T}(::Type{T}, ::Any)
  convert(::Type{Array{T,N}}, !Matched::SharedArray{T,N})
  convert{T,N}(::Type{Array{T,N}}, !Matched::DataArrays.DataArray{T,N})
  ...
while loading In[40], in expression starting on line 1

 in call at essentials.jl:56

In [42]:
myvals = [values(cityattack)]


Out[42]:
1-element Array{Base.ValueIterator{Dict{Any,Float64}},1}:
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]

In [43]:
myvals * 100


LoadError: MethodError: `.*` has no method matching .*(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[43], in expression starting on line 1

 in .* at arraymath.jl:127
 in * at abstractarraymath.jl:55

In [44]:
myvals .* 100


LoadError: MethodError: `.*` has no method matching .*(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[44], in expression starting on line 1

 in .* at arraymath.jl:127

In [45]:
myvals .= myvals * 100


LoadError: UndefVarError: .= not defined
while loading In[45], in expression starting on line 1

In [46]:
myvals = myvals * 100


LoadError: MethodError: `.*` has no method matching .*(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[46], in expression starting on line 1

 in .* at arraymath.jl:127
 in * at abstractarraymath.jl:55

In [50]:
myvals = collect(myvals);

In [51]:
myvals * 100


LoadError: MethodError: `.*` has no method matching .*(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[51], in expression starting on line 1

 in .* at arraymath.jl:127
 in * at abstractarraymath.jl:55

In [49]:
a = collect(1:10); a * 2


Out[49]:
10-element Array{Int64,1}:
  2
  4
  6
  8
 10
 12
 14
 16
 18
 20

In [52]:
myvalues = [keys(cityattack), values(cityattack)]


Out[52]:
2-element Array{Any,1}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [53]:
myvalues[1]


Out[53]:
Base.KeyIterator for a Dict{Any,Float64} with 42 entries. Keys:
  "Murkongselek"
  "Charsadda"
  "Mumbai"
  "Parachinar"
  "Vavuniya"
  "Khar"
  "Badaber"
  "Dera Ghazi Khan"
  "Multan"
  "Hyderabad"
  "Mullaitivu"
  "Saraband"
  "Unknown"
  "Lohardaga"
  "Mingora"
  "Colombo"
  "Tangmarg"
  "Kokrajhar"
  "Rani Bodli"
  "Sugandirapuram"
  "Mastung district"
  "Lahore"
  "Wana"
  "Orakzai district"
  ⋮

In [54]:
myvalues[1,2]


LoadError: BoundsError: attempt to access 2-element Array{Any,1}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        
  at index [1,2]
while loading In[54], in expression starting on line 1

 in getindex at array.jl:283

In [55]:
println(myvalues[1], myvalues[2])


Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad","Mullaitivu","Saraband","Unknown","Lohardaga","Mingora","Colombo","Tangmarg","Kokrajhar","Rani Bodli","Sugandirapuram","Mastung district","Lahore","Wana","Orakzai district","Guwahati","Hangu","Kohat","Gazipur","Islamabad","Jamrud","Quetta","Rawalpindi","Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"][0.013333333333333334,0.013333333333333334,0.013333333333333334,0.04,0.013333333333333334,0.013333333333333334,0.02666666666666667,0.02666666666666667,0.013333333333333334,0.02666666666666667,0.013333333333333334,0.013333333333333334,0.02666666666666667,0.013333333333333334,0.013333333333333334,0.013333333333333334,0.013333333333333334,0.013333333333333334,0.013333333333333334,0.013333333333333334,0.013333333333333334,0.06666666666666667,0.013333333333333334,0.013333333333333334,0.02666666666666667,0.013333333333333334,0.02666666666666667,0.013333333333333334,0.08,0.013333333333333334,0.06666666666666667,0.013333333333333334,0.013333333333333334,0.013333333333333334,0.04,0.04,0.013333333333333334,0.013333333333333334,0.013333333333333334,0.12,0.013333333333333334,0.013333333333333334]

In [56]:
myvalues[2]*100


LoadError: MethodError: `*` has no method matching *(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  *(::Any, ::Any, !Matched::Any, !Matched::Any...)
  *{T<:Number}(!Matched::Bool, ::T<:Number)
  *(!Matched::Complex{Bool}, ::Real)
  ...
while loading In[56], in expression starting on line 1

In [57]:
[myvalues[2]] * 100


LoadError: MethodError: `.*` has no method matching .*(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[57], in expression starting on line 1

 in .* at arraymath.jl:127
 in * at abstractarraymath.jl:55

In [93]:
## Arrays
for key in keys(cityattack)
    println("$(cityattack[key] * 100)")
end


1.3333333333333335
1.3333333333333335
1.3333333333333335
4.0
1.3333333333333335
1.3333333333333335
2.666666666666667
2.666666666666667
1.3333333333333335
2.666666666666667
1.3333333333333335
1.3333333333333335
2.666666666666667
1.3333333333333335
1.3333333333333335
1.3333333333333335
1.3333333333333335
1.3333333333333335
1.3333333333333335
1.3333333333333335
1.3333333333333335
6.666666666666667
1.3333333333333335
1.3333333333333335
2.666666666666667
1.3333333333333335
2.666666666666667
1.3333333333333335
8.0
1.3333333333333335
6.666666666666667
1.3333333333333335
1.3333333333333335
1.3333333333333335
4.0
4.0
1.3333333333333335
1.3333333333333335
1.3333333333333335
12.0
1.3333333333333335
1.3333333333333335

In [92]:
percent


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

In [79]:
?round


search: 
Out[79]:
.. round(z, RoundingModeReal, RoundingModeImaginary)

Returns the nearest integral value of the same type as the complex-valued
``z`` to ``z``, breaking ties using the specified :obj:`RoundingMode`\ s.
The first :obj:`RoundingMode` is used for rounding the real components while
the second is used for rounding the imaginary components.
..  round([T,] x, [digits, [base]], [r::RoundingMode])

``round(x)`` rounds ``x`` to an integer value according to the default
rounding mode (see :func:`get_rounding`), returning a value of the same type as
``x``. By default (:obj:`RoundNearest`), this will round to the nearest
integer, with ties (fractional values of 0.5) being rounded to the even
integer.

.. doctest::

   julia> round(1.7)
   2.0

   julia> round(1.5)
   2.0

   julia> round(2.5)
   2.0

The optional :obj:`RoundingMode` argument will change how the number gets rounded.

``round(T, x, [r::RoundingMode])`` converts the result to type ``T``, throwing an
:exc:`InexactError` if the value is not representable.

``round(x, digits)`` rounds to the specified number of digits after the
decimal place (or before if negative). ``round(x, digits, base)`` rounds
using a base other than 10.

.. doctest::

   julia> round(pi, 2)
   3.14

   julia> round(pi, 3, 2)
   3.125

.. note::

   Rounding to specified digits in bases other than 2 can be inexact when
   operating on binary floating point numbers. For example, the ``Float64``
   value represented by ``1.15`` is actually *less* than 1.15, yet will be
   rounded to 1.2.

   .. doctest::

      julia> x = 1.15
      1.15

      julia> @sprintf "%.20f" x
      "1.14999999999999991118"

      julia> x < 115//100
      true

      julia> round(x, 1)
      1.2
round RoundUp RoundDown RoundToZero RoundingMode RoundNearest


In [94]:
cityattack("Lahore")


LoadError: MethodError: `call` has no method matching call(::Dict{Any,Float64}, ::ASCIIString)
Closest candidates are:
  BoundsError()
  BoundsError(!Matched::Any...)
  DivideError()
  ...
while loading In[94], in expression starting on line 1

In [95]:
myvalues


Out[95]:
2-element Array{Any,1}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [96]:
size(myvalues)


Out[96]:
(2,)

In [97]:
ndims(myvalues)


Out[97]:
1

In [98]:
eye(3)


Out[98]:
3x3 Array{Float64,2}:
 1.0  0.0  0.0
 0.0  1.0  0.0
 0.0  0.0  1.0

In [99]:
reshape(myvalues, 25)


LoadError: DimensionMismatch("new dimensions (25,) must be consistent with array size 2")
while loading In[99], in expression starting on line 1

 in reshape at array.jl:135
 in reshape at abstractarray.jl:215

In [100]:
reshape(myvalues, 2)


Out[100]:
2-element Array{Any,1}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [101]:
reshape(myvalues, 2, 2)


LoadError: DimensionMismatch("new dimensions (2,2) must be consistent with array size 2")
while loading In[101], in expression starting on line 1

 in reshape at array.jl:146
 in reshape at abstractarray.jl:215

In [102]:
reshape(myvalues, 2, 25)


LoadError: DimensionMismatch("new dimensions (2,25) must be consistent with array size 2")
while loading In[102], in expression starting on line 1

 in reshape at array.jl:146
 in reshape at abstractarray.jl:215

In [ ]:


In [103]:
length(myvalues)


Out[103]:
2

In [104]:
length(myvalues[1])


Out[104]:
42

In [105]:
length(myvalues[2])


Out[105]:
42

In [110]:
a = [10, 20, 30, 40]


Out[110]:
4-element Array{Int64,1}:
 10
 20
 30
 40

In [111]:
reshape(a, 2,2)


Out[111]:
2x2 Array{Int64,2}:
 10  30
 20  40

In [112]:
reshape(myvalues, 2, 2)


LoadError: DimensionMismatch("new dimensions (2,2) must be consistent with array size 2")
while loading In[112], in expression starting on line 1

 in reshape at array.jl:146
 in reshape at abstractarray.jl:215

In [113]:
round(myvalues[2] * 100, 2)


LoadError: MethodError: `*` has no method matching *(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  *(::Any, ::Any, !Matched::Any, !Matched::Any...)
  *{T<:Number}(!Matched::Bool, ::T<:Number)
  *(!Matched::Complex{Bool}, ::Real)
  ...
while loading In[113], in expression starting on line 1

In [114]:
myvalues[2] * 100


LoadError: MethodError: `*` has no method matching *(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  *(::Any, ::Any, !Matched::Any, !Matched::Any...)
  *{T<:Number}(!Matched::Bool, ::T<:Number)
  *(!Matched::Complex{Bool}, ::Real)
  ...
while loading In[114], in expression starting on line 1

In [116]:
[myvalues[2]]


Out[116]:
1-element Array{Base.ValueIterator{Dict{Any,Float64}},1}:
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]

In [117]:
[myvalues[2]] * 100


LoadError: MethodError: `.*` has no method matching .*(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[117], in expression starting on line 1

 in .* at arraymath.jl:127
 in * at abstractarraymath.jl:55

In [118]:
[myvalues[2] * 100]


LoadError: MethodError: `*` has no method matching *(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  *(::Any, ::Any, !Matched::Any, !Matched::Any...)
  *{T<:Number}(!Matched::Bool, ::T<:Number)
  *(!Matched::Complex{Bool}, ::Real)
  ...
while loading In[118], in expression starting on line 1

In [119]:
a = [1 2 3 4]


Out[119]:
1x4 Array{Int64,2}:
 1  2  3  4

In [120]:
myvalues[2].*100


LoadError: MethodError: `.*` has no method matching .*(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[120], in expression starting on line 1

In [121]:
[myvalues[2]] .* 100


LoadError: MethodError: `.*` has no method matching .*(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[121], in expression starting on line 1

 in .* at arraymath.jl:127

In [123]:
a = [10, 20, 30]


Out[123]:
3-element Array{Int64,1}:
 10
 20
 30

In [124]:
typeof(myvalues)


Out[124]:
Array{Any,1}

In [125]:
myvalues


Out[125]:
2-element Array{Any,1}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [126]:
size(myvalues)


Out[126]:
(2,)

In [127]:
ndims(myvalues)


Out[127]:
1

In [128]:
eye(3)


Out[128]:
3x3 Array{Float64,2}:
 1.0  0.0  0.0
 0.0  1.0  0.0
 0.0  0.0  1.0

In [129]:
diagm(2, 4)


LoadError: MethodError: `diagm` has no method matching diagm(::Int64, ::Int64)
Closest candidates are:
  diagm{T}(!Matched::AbstractArray{T,1}, ::Integer)
  diagm(::Number)
while loading In[129], in expression starting on line 1

In [130]:
diagm([2,4])


Out[130]:
2x2 Array{Int64,2}:
 2  0
 0  4

In [131]:
size(eye(3))


Out[131]:
(3,3)

In [133]:
Array{Int64, 1} == Vector{Int64}


Out[133]:
true

In [134]:
a = [10, 20, 30, 40]


Out[134]:
4-element Array{Int64,1}:
 10
 20
 30
 40

In [135]:
reshape(a, 2, 2)


Out[135]:
2x2 Array{Int64,2}:
 10  30
 20  40

In [136]:
reshape(myvalues, 1, 2)


Out[136]:
1x2 Array{Any,2}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]  …  [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]

In [139]:
myvals = reshape(myvalues, 2, 1)


Out[139]:
2x1 Array{Any,2}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [140]:
myvals


Out[140]:
2x1 Array{Any,2}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [141]:
myvals[2]


Out[141]:
Base.ValueIterator for a Dict{Any,Float64} with 42 entries. Values:
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.04
  0.013333333333333334
  0.013333333333333334
  0.02666666666666667
  0.02666666666666667
  0.013333333333333334
  0.02666666666666667
  0.013333333333333334
  0.013333333333333334
  0.02666666666666667
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.06666666666666667
  0.013333333333333334
  0.013333333333333334
  ⋮

In [142]:
myvals[1,1]


Out[142]:
Base.KeyIterator for a Dict{Any,Float64} with 42 entries. Keys:
  "Murkongselek"
  "Charsadda"
  "Mumbai"
  "Parachinar"
  "Vavuniya"
  "Khar"
  "Badaber"
  "Dera Ghazi Khan"
  "Multan"
  "Hyderabad"
  "Mullaitivu"
  "Saraband"
  "Unknown"
  "Lohardaga"
  "Mingora"
  "Colombo"
  "Tangmarg"
  "Kokrajhar"
  "Rani Bodli"
  "Sugandirapuram"
  "Mastung district"
  "Lahore"
  "Wana"
  "Orakzai district"
  ⋮

In [143]:
myvals[1,2]


LoadError: BoundsError: attempt to access 2x1 Array{Any,2}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        
  at index [1,2]
while loading In[143], in expression starting on line 1

 in getindex at array.jl:283

In [144]:
myvals[2,1]


Out[144]:
Base.ValueIterator for a Dict{Any,Float64} with 42 entries. Values:
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.04
  0.013333333333333334
  0.013333333333333334
  0.02666666666666667
  0.02666666666666667
  0.013333333333333334
  0.02666666666666667
  0.013333333333333334
  0.013333333333333334
  0.02666666666666667
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.013333333333333334
  0.06666666666666667
  0.013333333333333334
  0.013333333333333334
  ⋮

In [145]:
myvals[2]*100


LoadError: MethodError: `*` has no method matching *(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  *(::Any, ::Any, !Matched::Any, !Matched::Any...)
  *{T<:Number}(!Matched::Bool, ::T<:Number)
  *(!Matched::Complex{Bool}, ::Real)
  ...
while loading In[145], in expression starting on line 1

In [146]:
squeeze(myvals, 1)


LoadError: ArgumentError: squeezed dims must all be size 1
while loading In[146], in expression starting on line 1

 in squeeze at abstractarraymath.jl:24
 in squeeze at abstractarraymath.jl:38

In [147]:
myvals[1:3]


LoadError: BoundsError: attempt to access 2x1 Array{Any,2}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        
  at index [1:3]
while loading In[147], in expression starting on line 1

 in throw_boundserror at abstractarray.jl:156
 in getindex at array.jl:288

In [148]:
myvals[1:2]


Out[148]:
2-element Array{Any,1}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [149]:
myvals


Out[149]:
2x1 Array{Any,2}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [150]:
myvals1 = [myvals[1]; myvals[2]]


Out[150]:
2-element Array{Any,1}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [151]:
myval[end]


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

In [153]:
myvals[end][2]


LoadError: MethodError: `getindex` has no method matching getindex(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
while loading In[153], in expression starting on line 1

In [154]:
myvals .* 100


LoadError: MethodError: `.*` has no method matching .*(::Base.KeyIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[154], in expression starting on line 1

 in .* at arraymath.jl:127

In [155]:
myvals[2] .* 10


LoadError: MethodError: `.*` has no method matching .*(::Base.ValueIterator{Dict{Any,Float64}}, ::Int64)
Closest candidates are:
  .*(!Matched::FloatRange{T<:AbstractFloat}, ::Real)
  .*(!Matched::LinSpace{T<:AbstractFloat}, ::Real)
  .*(!Matched::Range{T}, ::Real)
  ...
while loading In[155], in expression starting on line 1

In [156]:
names(mydata)


Out[156]:
9-element Array{Symbol,1}:
 :Gtdid      
 :Date       
 :country    
 :city       
 :perpetrator
 :fatalities 
 :injured    
 :attacktype 
 :weapon     

In [157]:
?by


search: 
Out[157]:

Split-apply-combine in one step; apply f to each grouping in d based on columns col

by(d::AbstractDataFrame, cols, f::Function)
by(f::Function, d::AbstractDataFrame, cols)

Arguments

  • d : an AbstractDataFrame
  • cols : a column indicator (Symbol, Int, Vector{Symbol}, etc.)
  • f : a function to be applied to groups; expects each argument to be an AbstractDataFrame

f can return a value, a vector, or a DataFrame. For a value or vector, these are merged into a column along with the cols keys. For a DataFrame, cols are combined along columns with the resulting DataFrame. Returning a DataFrame is the clearest because it allows column labeling.

A method is defined with f as the first argument, so do-block notation can be used.

by(d, cols, f) is equivalent to combine(map(f, groupby(d, cols))).

Returns

  • ::DataFrame

Examples

df = DataFrame(a = rep(1:4, 2), b = rep(2:-1:1, 4), c = randn(8))
by(df, :a, d -> sum(d[:c]))
by(df, :a, d -> 2 * d[:c])
by(df, :a, d -> DataFrame(c_sum = sum(d[:c]), c_mean = mean(d[:c])))
by(df, :a, d -> DataFrame(c = d[:c], c_mean = mean(d[:c])))
by(df, [:a, :b]) do d
    DataFrame(m = mean(d[:c]), v = var(d[:c]))
end
by bytes2hex bytestring ByteString readbytes hex2bytes readbytes!


In [164]:
results = by(mydata, :city, nrow)
x2 = round((results[:x1]/sum(results[:x1]))* 100, 2)
results[:percent] = x2


Out[164]:
42-element DataArrays.DataArray{Float64,1}:
  8.0 
  1.33
  1.33
  6.67
  2.67
  1.33
  4.0 
 12.0 
  4.0 
  2.67
  4.0 
  1.33
  1.33
  ⋮   
  1.33
  1.33
  1.33
  1.33
  2.67
  1.33
  1.33
  1.33
  1.33
  1.33
  1.33
  1.33

In [165]:
results


Out[165]:
cityx1percent
1Islamabad68.0
2Saraband11.33
3Mastung district11.33
4Quetta56.67
5Badaber22.67
6Mardan11.33
7Parachinar34.0
8Peshawar912.0
9Karachi34.0
10Hyderabad22.67
11Dera Ismail Khan34.0
12Rawalpindi11.33
13Landi Kotal11.33
14Khar11.33
15Jamrud11.33
16Mumbai11.33
17Lohardaga11.33
18Lahore56.67
19Kohat22.67
20Wana11.33
21Orakzai district11.33
22Dera Ghazi Khan22.67
23Multan11.33
24Guwahati22.67
25Colombo11.33
26Mullaitivu11.33
27Sugandirapuram11.33
28Bajaur district11.33
29Barpeta11.33
30Kokrajhar11.33
&vellip&vellip&vellip&vellip

In [172]:
using PyPlot
PyPlot.plot(results, "percent")


LoadError: PyError (:PyObject_Call) <type 'exceptions.ValueError'>
ValueError(u'Unrecognized character e in format string',)
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 3099, in plot
    ret = ax.plot(*args, **kwargs)
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/axes/_axes.py", line 1373, in plot
    for line in self._get_lines(*args, **kwargs):
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 304, in _grab_next_args
    for seg in self._plot_args(remaining, kwargs):
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 263, in _plot_args
    linestyle, marker, color = _process_plot_format(tup[-1])
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 115, in _process_plot_format
    'Unrecognized character %c in format string' % c)

while loading In[172], in expression starting on line 2

 in getindex at /Users/arindambose/.julia/v0.4/PyCall/src/PyCall.jl:239
 in pysequence_query at /Users/arindambose/.julia/v0.4/PyCall/src/conversions.jl:757
 [inlined code] from /Users/arindambose/.julia/v0.4/PyCall/src/conversions.jl:773
 in pytype_query at /Users/arindambose/.julia/v0.4/PyCall/src/conversions.jl:795
 in convert at /Users/arindambose/.julia/v0.4/PyCall/src/conversions.jl:822
 in pycall at /Users/arindambose/.julia/v0.4/PyCall/src/PyCall.jl:380
 in call at /Users/arindambose/.julia/v0.4/PyCall/src/PyCall.jl:388
 in close_queued_figs at /Users/arindambose/.julia/v0.4/PyPlot/src/PyPlot.jl:401

In [174]:
rcountry = by(mydata, :country, nrow)


Out[174]:
countryx1
1Pakistan54
2India15
3Sri Lanka4
4Bangladesh2

In [175]:
?by


search: 
Out[175]:

Split-apply-combine in one step; apply f to each grouping in d based on columns col

by(d::AbstractDataFrame, cols, f::Function)
by(f::Function, d::AbstractDataFrame, cols)

Arguments

  • d : an AbstractDataFrame
  • cols : a column indicator (Symbol, Int, Vector{Symbol}, etc.)
  • f : a function to be applied to groups; expects each argument to be an AbstractDataFrame

f can return a value, a vector, or a DataFrame. For a value or vector, these are merged into a column along with the cols keys. For a DataFrame, cols are combined along columns with the resulting DataFrame. Returning a DataFrame is the clearest because it allows column labeling.

A method is defined with f as the first argument, so do-block notation can be used.

by(d, cols, f) is equivalent to combine(map(f, groupby(d, cols))).

Returns

  • ::DataFrame

Examples

df = DataFrame(a = rep(1:4, 2), b = rep(2:-1:1, 4), c = randn(8))
by(df, :a, d -> sum(d[:c]))
by(df, :a, d -> 2 * d[:c])
by(df, :a, d -> DataFrame(c_sum = sum(d[:c]), c_mean = mean(d[:c])))
by(df, :a, d -> DataFrame(c = d[:c], c_mean = mean(d[:c])))
by(df, [:a, :b]) do d
    DataFrame(m = mean(d[:c]), v = var(d[:c]))
end
by bytes2hex bytestring ByteString readbytes hex2bytes readbytes!


In [177]:
by(mydata, ["country", "weapon"], countmap)


LoadError: MethodError: `getindex` has no method matching getindex(::DataFrames.DataFrame, ::ASCIIString)
Closest candidates are:
  getindex(::DataFrames.DataFrame, !Matched::Real, !Matched::Union{Real,Symbol})
  getindex{T<:Union{Real,Symbol}}(::DataFrames.DataFrame, !Matched::Real, !Matched::AbstractArray{T<:Union{Real,Symbol},1})
  getindex(::DataFrames.DataFrame, !Matched::Real, !Matched::Colon)
  ...
while loading In[177], in expression starting on line 1

 in groupby at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:90
 in by at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:303

In [179]:
by(mydata, "country", nrow)


LoadError: MethodError: `getindex` has no method matching getindex(::DataFrames.DataFrame, ::ASCIIString)
Closest candidates are:
  getindex(::DataFrames.DataFrame, !Matched::Real, !Matched::Union{Real,Symbol})
  getindex{T<:Union{Real,Symbol}}(::DataFrames.DataFrame, !Matched::Real, !Matched::AbstractArray{T<:Union{Real,Symbol},1})
  getindex(::DataFrames.DataFrame, !Matched::Real, !Matched::Colon)
  ...
while loading In[179], in expression starting on line 1

 in groupby at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:90
 in by at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:303

In [195]:
results3 = by(mydata, :country, nrow)


Out[195]:
countryx1
1Pakistan54
2India15
3Sri Lanka4
4Bangladesh2

In [194]:
results2 = by(mydata, [:country, :weapon],nrow)
#results3 = melt(results2, [:x1, :weapon])


Out[194]:
countryweaponx1
1Pakistan1
2PakistanExplosives/Bombs/Dynamite49
3PakistanFirearms4
4India1
5IndiaExplosives/Bombs/Dynamite12
6IndiaFirearms1
7IndiaIncendiary1
8Sri LankaExplosives/Bombs/Dynamite3
9Sri LankaFirearms1
10BangladeshExplosives/Bombs/Dynamite2

In [190]:
?stack


search: 
Out[190]:

Stacks a DataFrame; convert from a wide to long format

stack(df::AbstractDataFrame, measure_vars, id_vars)
stack(df::AbstractDataFrame, measure_vars)
stack(df::AbstractDataFrame)
melt(df::AbstractDataFrame, id_vars, measure_vars)
melt(df::AbstractDataFrame, id_vars)

Arguments

  • df : the AbstractDataFrame to be stacked

  • measure_vars : the columns to be stacked (the measurement variables), a normal column indexing type, like a Symbol, Vector{Symbol}, Int, etc.; for melt, defaults to all variables that are not id_vars

  • id_vars : the identifier columns that are repeated during stacking, a normal column indexing type; for stack defaults to all variables that are not measure_vars

If neither measure_vars or id_vars are given, measure_vars defaults to all floating point columns.

Result

  • ::DataFrame : the long-format dataframe with column :value holding the values of the stacked columns (measure_vars), with column :variable a Vector of Symbols with the measure_vars name, and with columns for each of the id_vars.

See also stackdf and meltdf for stacking methods that return a view into the original DataFrame. See unstack for converting from long to wide format.

Examples

d1 = DataFrame(a = repeat([1:3;], inner = [4]),
               b = repeat([1:4;], inner = [3]),
               c = randn(12),
               d = randn(12),
               e = map(string, 'a':'l'))

d1s = stack(d1, [:c, :d])
d1s2 = stack(d1, [:c, :d], [:a])
d1m = melt(d1, [:a, :b, :e])
stack stackdf stackplot StackOverflowError vstack hstack unstack


In [196]:
results3


Out[196]:
countryx1
1Pakistan54
2India15
3Sri Lanka4
4Bangladesh2

In [221]:
Gadfly.plot(results3, x = "country", y = "x1", Geom.bar)


Out[221]:
country Pakistan India Sri Lanka Bangladesh -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 130 -60 -58 -56 -54 -52 -50 -48 -46 -44 -42 -40 -38 -36 -34 -32 -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10 -8 -6 -4 -2 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 -100 0 100 200 -60 -55 -50 -45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 x1

In [222]:
?xtab


search: 
WARNING: both StatsBase and Base export "histrange"; uses of it in module DataArrays must be qualified
WARNING: both StatsBase and Base export "midpoints"; uses of it in module DataArrays must be qualified
WARNING: both DataArrays and StatsBase export "autocor"; uses of it in module DataFrames must be qualified
WARNING: both DataArrays and StatsBase export "histrange"; uses of it in module DataFrames must be qualified
WARNING: both DataArrays and StatsBase export "inverse_rle"; uses of it in module DataFrames must be qualified
WARNING: both DataArrays and StatsBase export "midpoints"; uses of it in module DataFrames must be qualified
WARNING: both DataArrays and StatsBase export "rle"; uses of it in module DataFrames must be qualified
Out[222]:

No documentation found.

Summary:

type DataArrays.xtab{T} <: Any

Fields:

vals   :: Array{T,N}
counts :: Array{Int64,1}
xtab xtabs isexecutable extrema ExactMannWhitneyUTest nextfloat


In [209]:
using PyPlot

In [213]:
PyPlot.plot(results3, :x1)


LoadError: PyError (:PyObject_Call) <type 'exceptions.ValueError'>
ValueError(u'Illegal format string "x1"; two marker symbols',)
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 3099, in plot
    ret = ax.plot(*args, **kwargs)
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/axes/_axes.py", line 1373, in plot
    for line in self._get_lines(*args, **kwargs):
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 304, in _grab_next_args
    for seg in self._plot_args(remaining, kwargs):
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 263, in _plot_args
    linestyle, marker, color = _process_plot_format(tup[-1])
  File "/Users/arindambose/anaconda/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 106, in _process_plot_format
    'Illegal format string "%s"; two marker symbols' % fmt)

while loading In[213], in expression starting on line 1

 in getindex at /Users/arindambose/.julia/v0.4/PyCall/src/PyCall.jl:239
 in pysequence_query at /Users/arindambose/.julia/v0.4/PyCall/src/conversions.jl:757
 [inlined code] from /Users/arindambose/.julia/v0.4/PyCall/src/conversions.jl:773
 in pytype_query at /Users/arindambose/.julia/v0.4/PyCall/src/conversions.jl:795
 in convert at /Users/arindambose/.julia/v0.4/PyCall/src/conversions.jl:822
 in pycall at /Users/arindambose/.julia/v0.4/PyCall/src/PyCall.jl:380
 in call at /Users/arindambose/.julia/v0.4/PyCall/src/PyCall.jl:388
 in close_queued_figs at /Users/arindambose/.julia/v0.4/PyPlot/src/PyPlot.jl:401

In [224]:
using DataArrays

In [226]:
?xtabs


search: 
Out[226]:

No documentation found.

DataArrays.xtabs is a generic Function.

# 1 method for generic function "xtabs":
xtabs{T}(x::AbstractArray{T,N}) at /Users/arindambose/.julia/v0.4/DataArrays/src/statistics.jl:60
xtabs xtab isexecutable


In [227]:
mydata


Out[227]:
GtdidDatecountrycityperpetratorfatalitiesinjuredattacktypeweapon
12014040900052014-04-09PakistanIslamabadUnited Baloch Army (UBA)
22014031400272014-03-14PakistanSarabandTehrik-i-Taliban Pakistan (TTP)1350Bombing/ExplosionExplosives/Bombs/Dynamite
32014012100022014-01-21PakistanMastung districtLashkar-e-Jhangvi3031Bombing/ExplosionExplosives/Bombs/Dynamite
42013080800112013-08-08PakistanQuettaTehrik-i-Taliban Pakistan (TTP)3950Bombing/ExplosionExplosives/Bombs/Dynamite
52013063000012013-06-30PakistanBadaberTehrik-i-Taliban Pakistan (TTP)2050Bombing/ExplosionExplosives/Bombs/Dynamite
62013061800012013-06-18PakistanMardanUnknown3543Bombing/ExplosionExplosives/Bombs/Dynamite
72013051200112013-05-12PakistanQuettaLashkar-e-Jhangvi1176AssassinationExplosives/Bombs/Dynamite
82013050700042013-05-06PakistanParachinarTehrik-i-Taliban Pakistan (TTP)2370Bombing/ExplosionExplosives/Bombs/Dynamite
92013042900012013-04-29PakistanPeshawarUnknown943Bombing/ExplosionExplosives/Bombs/Dynamite
102013042600012013-04-26PakistanKarachiTehrik-i-Taliban Pakistan (TTP)1140Bombing/ExplosionExplosives/Bombs/Dynamite
112013041600032013-04-16PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1860Bombing/ExplosionExplosives/Bombs/Dynamite
122013022100032013-02-21IndiaHyderabadLashkar-e-Taiba (LeT)858Bombing/ExplosionExplosives/Bombs/Dynamite
132013022100022013-02-21IndiaHyderabadLashkar-e-Taiba (LeT)858Bombing/ExplosionExplosives/Bombs/Dynamite
142013011000032013-01-10PakistanQuettaUnited Baloch Army (UBA)1250Bombing/ExplosionExplosives/Bombs/Dynamite
152012121500012012-12-15PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1440Bombing/ExplosionExplosives/Bombs/Dynamite
162012112500012012-11-25PakistanDera Ismail KhanTehrik-i-Taliban Pakistan (TTP)583Bombing/ExplosionExplosives/Bombs/Dynamite
172012112200012012-11-21PakistanRawalpindiTehrik-i-Taliban Pakistan (TTP)2562Bombing/ExplosionExplosives/Bombs/Dynamite
182012091000022012-09-10PakistanParachinarTehrik-i-Taliban Pakistan (TTP)1470Bombing/ExplosionExplosives/Bombs/Dynamite
192012061600022012-06-16PakistanLandi KotalUnknown2550Bombing/ExplosionExplosives/Bombs/Dynamite
202012051400022012-05-14PakistanQuettaBaloch Republican Army (BRA)658Bombing/ExplosionExplosives/Bombs/Dynamite
212012050400012012-05-04PakistanKharTehrik-i-Taliban Pakistan (TTP)2140Bombing/ExplosionExplosives/Bombs/Dynamite
222012031100072012-03-11PakistanBadaberTehrik-i-Taliban Pakistan (TTP)1835Bombing/ExplosionExplosives/Bombs/Dynamite
232012011000022012-01-10PakistanJamrudTehrik-i-Taliban Pakistan (TTP)3560Bombing/ExplosionExplosives/Bombs/Dynamite
242011092000022011-09-20PakistanQuettaLashkar-e-Jhangvi2630Armed AssaultFirearms
252011082000022011-08-20PakistanKarachiUnknown850Armed AssaultFirearms
262011071300092011-07-13IndiaMumbaiIndian Mujahideen744Bombing/ExplosionExplosives/Bombs/Dynamite
272011061100062011-06-11PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1840Bombing/ExplosionExplosives/Bombs/Dynamite
282011061100052011-06-11PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1840Bombing/ExplosionExplosives/Bombs/Dynamite
292011050300192011-05-03IndiaLohardagaCommunist Party of India - Maoist (CPI-Maoist)1140Bombing/ExplosionExplosives/Bombs/Dynamite
302011030900202011-03-09PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)2650Bombing/ExplosionExplosives/Bombs/Dynamite
&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip

In [230]:
xtab(mydata, "perpetrator", "city")


LoadError: MethodError: `convert` has no method matching convert(::Type{DataArrays.xtab{T}}, ::DataFrames.DataFrame, ::ASCIIString, ::ASCIIString)
This may have arisen from a call to the constructor DataArrays.xtab{T}(...),
since type constructors fall back to convert methods.
Closest candidates are:
  call{T}(::Type{T}, ::Any)
  convert{T}(::Type{T}, !Matched::T)
  DataArrays.xtab{T}(!Matched::Array{T,N}, !Matched::Array{Int64,1})
  ...
while loading In[230], in expression starting on line 1

 in call at essentials.jl:57

In [231]:
Pkg.add("Stats")


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

In [232]:
using Stats

In [233]:
?reshape


search: 
Out[233]:
reshape(A, dims)

Create an array with the same data as the given array, but with different dimensions. An implementation for a particular type of array may choose whether the data is copied or shared.

reshape promote_shape InverseWishart NormalInverseWishart


In [234]:
reshape(results2, 2)


LoadError: MethodError: `reshape` has no method matching reshape(::DataFrames.DataFrame, ::Int64)
Closest candidates are:
  reshape(!Matched::AbstractArray{T,N}, ::Int64...)
while loading In[234], in expression starting on line 1

In [235]:
reshape(myvals, 2)


Out[235]:
2-element Array{Any,1}:
 Any["Murkongselek","Charsadda","Mumbai","Parachinar","Vavuniya","Khar","Badaber","Dera Ghazi Khan","Multan","Hyderabad"  …  "Landi Kotal","Netrokona district","Karachi","Dera Ismail Khan","Mardan","Bajaur district","New Delhi","Peshawar","Barpeta","Sadiya"]
 [0.0133333,0.0133333,0.0133333,0.04,0.0133333,0.0133333,0.0266667,0.0266667,0.0133333,0.0266667  …  0.0133333,0.0133333,0.04,0.04,0.0133333,0.0133333,0.0133333,0.12,0.0133333,0.0133333]                                                                        

In [242]:
citystats = by(mydata, [:weapon], nrow)


Out[242]:
weaponx1
12
2Explosives/Bombs/Dynamite66
3Firearms6
4Incendiary1

In [243]:
using RDatasets


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

In [244]:
iris = dataset("datasets", "iris")


Out[244]:
SepalLengthSepalWidthPetalLengthPetalWidthSpecies
15.13.51.40.2setosa
24.93.01.40.2setosa
34.73.21.30.2setosa
44.63.11.50.2setosa
55.03.61.40.2setosa
65.43.91.70.4setosa
74.63.41.40.3setosa
85.03.41.50.2setosa
94.42.91.40.2setosa
104.93.11.50.1setosa
115.43.71.50.2setosa
124.83.41.60.2setosa
134.83.01.40.1setosa
144.33.01.10.1setosa
155.84.01.20.2setosa
165.74.41.50.4setosa
175.43.91.30.4setosa
185.13.51.40.3setosa
195.73.81.70.3setosa
205.13.81.50.3setosa
215.43.41.70.2setosa
225.13.71.50.4setosa
234.63.61.00.2setosa
245.13.31.70.5setosa
254.83.41.90.2setosa
265.03.01.60.2setosa
275.03.41.60.4setosa
285.23.51.50.2setosa
295.23.41.40.2setosa
304.73.21.60.2setosa
&vellip&vellip&vellip&vellip&vellip&vellip

In [245]:
names(iris)


Out[245]:
5-element Array{Symbol,1}:
 :SepalLength
 :SepalWidth 
 :PetalLength
 :PetalWidth 
 :Species    

In [246]:
by(iris, :Species, size)


Out[246]:
Speciesx1
1setosa(50,5)
2versicolor(50,5)
3virginica(50,5)

In [247]:
by(mydata, :country, size)


Out[247]:
countryx1
1Pakistan(54,9)
2India(15,9)
3Sri Lanka(4,9)
4Bangladesh(2,9)

In [259]:
by(mydata, :injury, sum)


LoadError: KeyError: injury not found
while loading In[259], in expression starting on line 1

 in getindex at /Users/arindambose/.julia/v0.4/DataFrames/src/other/index.jl:125
 in groupby at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:90
 in by at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:303

In [250]:
mydata[:injured]


Out[250]:
75-element Array{Any,1}:
   ""
 50  
 31  
 50  
 50  
 43  
 76  
 70  
 43  
 40  
 60  
 58  
 58  
  ⋮  
 35  
 60  
 50  
 83  
 12  
 19  
 53  
   ""
 50  
 50  
 50  
 60  

In [253]:
median(mydata[:injured])


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

 in partition! at sort.jl:272
 in sort! at sort.jl:377
 in select! at sort.jl:62
 in median! at statistics.jl:499
 in median at statistics.jl:507

In [252]:
by(iris, :Species, df -> mean(df[:PetalLength]))


Out[252]:
Speciesx1
1setosa1.462
2versicolor4.260000000000001
3virginica5.5520000000000005

In [260]:
by(mydata, :country, size)


Out[260]:
countryx1
1Pakistan(54,9)
2India(15,9)
3Sri Lanka(4,9)
4Bangladesh(2,9)

In [261]:
aggregate(mydata, :country, sum )


LoadError: MethodError: `+` has no method matching +(::SubString{ASCIIString}, ::SubString{ASCIIString})
Closest candidates are:
  +(::Any, ::Any, !Matched::Any, !Matched::Any...)
while loading In[261], in expression starting on line 1

 in mapreduce_seq_impl at reduce.jl:228
 in mapreduce_pairwise_impl at reduce.jl:108
 in _mapreduce at reduce.jl:153
 in sum at reduce.jl:247
 in colwise at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:253
 in _aggregate at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:375
 in anonymous at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:356
 in map at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:178
 in aggregate at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:356
 in aggregate at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:365

In [262]:
names(mydata)


Out[262]:
9-element Array{Symbol,1}:
 :Gtdid      
 :Date       
 :country    
 :city       
 :perpetrator
 :fatalities 
 :injured    
 :attacktype 
 :weapon     

In [263]:
typeof(mydata[:injured])


Out[263]:
Array{Any,1}

In [265]:
by(iris, :Species, df -> DataFrame(N = size(df, 1)))


Out[265]:
SpeciesN
1setosa50
2versicolor50
3virginica50

In [266]:
by(iris, :Species) do df
   DataFrame(m = mean(df[:PetalLength]),  = var(df[:PetalLength]))
end


Out[266]:
Speciesm
1setosa1.4620.030159183673469387
2versicolor4.2600000000000010.22081632653061226
3virginica5.55200000000000050.3045877551020408

In [270]:
aggregate(iris, :Species, mean)


Out[270]:
SpeciesSepalLength_meanSepalWidth_meanPetalLength_meanPetalWidth_mean
1setosa5.0063.4281.4620.24600000000000002
2versicolor5.9362.774.2600000000000011.3259999999999998
3virginica6.5879999999999992.9745.55200000000000052.026

In [279]:
for subdf in groupby(mydata, [:country, :city])
    println(size(subdf, 1))
end


6
1
1
5
2
1
3
9
3
3
1
1
1
1
5
2
1
1
2
1
1
1
1
1
2
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1

In [280]:
names(mydata)


Out[280]:
9-element Array{Symbol,1}:
 :Gtdid      
 :Date       
 :country    
 :city       
 :perpetrator
 :fatalities 
 :injured    
 :attacktype 
 :weapon     

In [285]:
convert(UInt64, "injured")


LoadError: MethodError: `convert` has no method matching convert(::Type{UInt64}, ::ASCIIString)
This may have arisen from a call to the constructor UInt64(...),
since type constructors fall back to convert methods.
Closest candidates are:
  call{T}(::Type{T}, ::Any)
  convert(::Type{UInt64}, !Matched::Int8)
  convert(::Type{UInt64}, !Matched::UInt8)
  ...
while loading In[285], in expression starting on line 1

In [286]:
typeof(mydata[:injured])


Out[286]:
Array{Any,1}

In [287]:
summary(mydata[:injured])


Out[287]:
"75-element Array{Any,1}"

In [288]:
summary(iris[:PetalLength])


Out[288]:
"150-element DataArrays.DataArray{Float64,1}"

In [289]:
DataArray(mydata[:injured])


Out[289]:
75-element DataArrays.DataArray{Any,1}:
   ""
 50  
 31  
 50  
 50  
 43  
 76  
 70  
 43  
 40  
 60  
 58  
 58  
  ⋮  
 35  
 60  
 50  
 83  
 12  
 19  
 53  
   ""
 50  
 50  
 50  
 60  

In [291]:
by(mydata, :country, df -> mean(mydata[:injured]))


LoadError: MethodError: `+` has no method matching +(::SubString{ASCIIString}, ::Int64)
Closest candidates are:
  +(::Any, ::Any, !Matched::Any, !Matched::Any...)
  +(!Matched::Int64, ::Int64)
  +(!Matched::Complex{Bool}, ::Real)
  ...
while loading In[291], in expression starting on line 1

 in mapreduce_seq_impl at reduce.jl:228
 in mapreduce_pairwise_impl at reduce.jl:108
 in _mapreduce at reduce.jl:153
 in mean at statistics.jl:19
 in anonymous at In[291]:1
 in map at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:178
 in by at /Users/arindambose/.julia/v0.4/DataFrames/src/groupeddataframe/grouping.jl:303

In [292]:
mydata


Out[292]:
GtdidDatecountrycityperpetratorfatalitiesinjuredattacktypeweapon
12014040900052014-04-09PakistanIslamabadUnited Baloch Army (UBA)
22014031400272014-03-14PakistanSarabandTehrik-i-Taliban Pakistan (TTP)1350Bombing/ExplosionExplosives/Bombs/Dynamite
32014012100022014-01-21PakistanMastung districtLashkar-e-Jhangvi3031Bombing/ExplosionExplosives/Bombs/Dynamite
42013080800112013-08-08PakistanQuettaTehrik-i-Taliban Pakistan (TTP)3950Bombing/ExplosionExplosives/Bombs/Dynamite
52013063000012013-06-30PakistanBadaberTehrik-i-Taliban Pakistan (TTP)2050Bombing/ExplosionExplosives/Bombs/Dynamite
62013061800012013-06-18PakistanMardanUnknown3543Bombing/ExplosionExplosives/Bombs/Dynamite
72013051200112013-05-12PakistanQuettaLashkar-e-Jhangvi1176AssassinationExplosives/Bombs/Dynamite
82013050700042013-05-06PakistanParachinarTehrik-i-Taliban Pakistan (TTP)2370Bombing/ExplosionExplosives/Bombs/Dynamite
92013042900012013-04-29PakistanPeshawarUnknown943Bombing/ExplosionExplosives/Bombs/Dynamite
102013042600012013-04-26PakistanKarachiTehrik-i-Taliban Pakistan (TTP)1140Bombing/ExplosionExplosives/Bombs/Dynamite
112013041600032013-04-16PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1860Bombing/ExplosionExplosives/Bombs/Dynamite
122013022100032013-02-21IndiaHyderabadLashkar-e-Taiba (LeT)858Bombing/ExplosionExplosives/Bombs/Dynamite
132013022100022013-02-21IndiaHyderabadLashkar-e-Taiba (LeT)858Bombing/ExplosionExplosives/Bombs/Dynamite
142013011000032013-01-10PakistanQuettaUnited Baloch Army (UBA)1250Bombing/ExplosionExplosives/Bombs/Dynamite
152012121500012012-12-15PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1440Bombing/ExplosionExplosives/Bombs/Dynamite
162012112500012012-11-25PakistanDera Ismail KhanTehrik-i-Taliban Pakistan (TTP)583Bombing/ExplosionExplosives/Bombs/Dynamite
172012112200012012-11-21PakistanRawalpindiTehrik-i-Taliban Pakistan (TTP)2562Bombing/ExplosionExplosives/Bombs/Dynamite
182012091000022012-09-10PakistanParachinarTehrik-i-Taliban Pakistan (TTP)1470Bombing/ExplosionExplosives/Bombs/Dynamite
192012061600022012-06-16PakistanLandi KotalUnknown2550Bombing/ExplosionExplosives/Bombs/Dynamite
202012051400022012-05-14PakistanQuettaBaloch Republican Army (BRA)658Bombing/ExplosionExplosives/Bombs/Dynamite
212012050400012012-05-04PakistanKharTehrik-i-Taliban Pakistan (TTP)2140Bombing/ExplosionExplosives/Bombs/Dynamite
222012031100072012-03-11PakistanBadaberTehrik-i-Taliban Pakistan (TTP)1835Bombing/ExplosionExplosives/Bombs/Dynamite
232012011000022012-01-10PakistanJamrudTehrik-i-Taliban Pakistan (TTP)3560Bombing/ExplosionExplosives/Bombs/Dynamite
242011092000022011-09-20PakistanQuettaLashkar-e-Jhangvi2630Armed AssaultFirearms
252011082000022011-08-20PakistanKarachiUnknown850Armed AssaultFirearms
262011071300092011-07-13IndiaMumbaiIndian Mujahideen744Bombing/ExplosionExplosives/Bombs/Dynamite
272011061100062011-06-11PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1840Bombing/ExplosionExplosives/Bombs/Dynamite
282011061100052011-06-11PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)1840Bombing/ExplosionExplosives/Bombs/Dynamite
292011050300192011-05-03IndiaLohardagaCommunist Party of India - Maoist (CPI-Maoist)1140Bombing/ExplosionExplosives/Bombs/Dynamite
302011030900202011-03-09PakistanPeshawarTehrik-i-Taliban Pakistan (TTP)2650Bombing/ExplosionExplosives/Bombs/Dynamite
&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip&vellip

In [293]:
mydata2 = DataFrame(readdlm("wolfriver.csv", ','))


LoadError: SystemError: opening file wolfriver.csv: No such file or directory
while loading In[293], in expression starting on line 1

 in open at /Applications/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib (repeats 2 times)
 in readdlm_auto at datafmt.jl:45
 in readdlm at datafmt.jl:39
 in readdlm at datafmt.jl:37

In [294]:
pwd()


Out[294]:
"/Users/arindambose/Documents/julia"

In [295]:
readdir()


Out[295]:
13-element Array{ByteString,1}:
 ".ipynb_checkpoints"            
 "GTD-Export.csv"                
 "Tutorial.jl"                   
 "cofreewy.txt"                  
 "health.csv"                    
 "juliamaterials.ipynb"          
 "learnJlsanders.ipynb"          
 "learning.jl"                   
 "learningJulia.ipynb"           
 "myplot.png"                    
 "terrorism-analysis-julia.ipynb"
 "testing.jl"                    
 "tryingjulia.ipynb"             

In [302]:
mydata2 = DataFrame(readcsv("health.csv"))
mydata2 = deleterows!(mydata2, 1)


Out[302]:
x1x2x3x4x5
1Kalangala0111113
2Kampala0200200250
3Kayunga0212354
4Kiboga0374040
5Luwero0576777
6Lyantonde091928
7Masaka0808077
8Mityana0445255
9Mpigi0596464
10Mubende0515656
11Mukono0697777
12Nakaseke019922
13Nakasongola0283033
14Rakai06592105
15Sembabule0212323
16Wakiso09599104
17Amuria0172323
18Budaka0151519
19Bududa0111215
20Bugiri0665471
21Bukedea0111111
22Bukwa0101234
23Busia0202727
24Butaleja0172356
25Iganga0698182
26Jinja0666768
27Kaberamaido0161645
28Kaliro0171717
29Kamuli0615171
30Kapchorwa0293130
&vellip&vellip&vellip&vellip&vellip&vellip

In [303]:
describe(mydata2)


x1
Length  80
Type    Any
NAs     0
NA%     0.0%
Unique  80

x2
Length  80
Type    Any
NAs     0
NA%     0.0%
Unique  2

x3
Length  80
Type    Any
NAs     0
NA%     0.0%
Unique  45

x4
Length  80
Type    Any
NAs     0
NA%     0.0%
Unique  46

x5
Length  80
Type    Any
NAs     0
NA%     0.0%
Unique  52


In [305]:
mean(mydata2[:x2])


Out[305]:
0.125

In [319]:
by(mydata2, :x3, df1 -> mean(mydata2[:x4]))


Out[319]:
x3x1
11140.475
220040.475
32140.475
43740.475
55740.475
6940.475
78040.475
84440.475
95940.475
105140.475
116940.475
121940.475
132840.475
146540.475
159540.475
161740.475
171540.475
186640.475
191040.475
202040.475
211640.475
226140.475
232940.475
241340.475
252340.475
263140.475
273240.475
283340.475
294040.475
303640.475
&vellip&vellip&vellip

In [321]:
a = 3; 
a < 5 && println("small")
a > 5 && println("large")


small
Out[321]:
false

In [324]:
a <= 10 ? println("hello") : println("not")


hello

In [326]:
@which ^


Out[326]:
Base

In [327]:
mymat = [2 1 1 1]


Out[327]:
1x4 Array{Int64,2}:
 2  1  1  1

In [328]:
w = [1,1]


Out[328]:
2-element Array{Int64,1}:
 1
 1

In [331]:
M = reshape([2.0, 1, 1, 1], (2,2))


Out[331]:
2x2 Array{Float64,2}:
 2.0  1.0
 1.0  1.0

In [332]:
Pkg.add("Lapack")


LoadError: unknown package Lapack
 in error at /Applications/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 [inlined code] from pkg/entry.jl:49
 in anonymous at task.jl:447
while loading In[332], in expression starting on line 1

 in sync_end at /Applications/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 [inlined code] from task.jl:422
 in add at pkg/entry.jl:46
 in add at pkg/entry.jl:73
 in anonymous at pkg/dir.jl:31
 in cd at file.jl:22
 in cd at pkg/dir.jl:31
 in add at pkg.jl:23

In [334]:
Pkg.add("lapack")


LoadError: unknown package lapack
 in error at /Applications/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 [inlined code] from pkg/entry.jl:49
 in anonymous at task.jl:447
while loading In[334], in expression starting on line 1

 in sync_end at /Applications/Julia-0.4.1.app/Contents/Resources/julia/lib/julia/sys.dylib
 [inlined code] from task.jl:422
 in add at pkg/entry.jl:46
 in add at pkg/entry.jl:73
 in anonymous at pkg/dir.jl:31
 in cd at file.jl:22
 in cd at pkg/dir.jl:31
 in add at pkg.jl:23

In [335]:
?writedlm


search: 
Out[335]:
writedlm(f, A, delim='\\t')

Write A (a vector, matrix or an iterable collection of iterable rows) as text to f (either a filename string or an IO stream) using the given delimeter delim (which defaults to tab, but can be any printable Julia object, typically a Char or AbstractString).

For example, two vectors x and y of the same length can be written as two columns of tab-delimited text to f by either writedlm(f, [x y]) or by writedlm(f, zip(x, y)).

writedlm


In [337]:
writedlm("mydata2.csv", mydata2)


LoadError: MethodError: `data` has no method matching data(::DataFrames.DataFrame)
while loading In[337], in expression starting on line 1

 in writedlm at datafmt.jl:560
 in anonymous at datafmt.jl:575
 in open at iostream.jl:114
 in writedlm at datafmt.jl:574
 in writedlm at datafmt.jl:579

In [338]:
?writecsv


search: 
Out[338]:
writecsv(filename, A)

Equivalent to writedlm with delim set to comma.

writecsv


In [339]:
writecsv("mydata2.csv", mydata2)


LoadError: MethodError: `data` has no method matching data(::DataFrames.DataFrame)
while loading In[339], in expression starting on line 1

 in writedlm at datafmt.jl:560
 in anonymous at datafmt.jl:575
 in open at iostream.jl:114
 in writedlm at datafmt.jl:574
 in writecsv at datafmt.jl:580

In [340]:
writecsv(mydata2.csv, mydata2)


LoadError: type DataFrame has no field csv
while loading In[340], in expression starting on line 1

In [345]:
writetable("mydata2.csv", mydata2)

In [346]:
readdir()


Out[346]:
14-element Array{ByteString,1}:
 ".ipynb_checkpoints"            
 "GTD-Export.csv"                
 "Tutorial.jl"                   
 "cofreewy.txt"                  
 "health.csv"                    
 "juliamaterials.ipynb"          
 "learnJlsanders.ipynb"          
 "learning.jl"                   
 "learningJulia.ipynb"           
 "mydata2.csv"                   
 "myplot.png"                    
 "terrorism-analysis-julia.ipynb"
 "testing.jl"                    
 "tryingjulia.ipynb"             

In [347]:
1.0
nextfloat(ans)


LoadError: MethodError: `nextfloat` has no method matching nextfloat(::Array{ByteString,1})
while loading In[347], in expression starting on line 2

In [348]:
1.0


Out[348]:
1.0

In [349]:
nextfloat(ans)


Out[349]:
1.0000000000000002

In [350]:
describe(mydata)


Gtdid
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  75

Date
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  70

country
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  4

city
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  42

perpetrator
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  12

fatalities
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  33

injured
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  27

attacktype
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  7

weapon
Length  75
Type    Any
NAs     0
NA%     0.0%
Unique  4


In [351]:
summary(mydata[:injured])


Out[351]:
"75-element Array{Any,1}"

In [ ]: