Thursday, 24 December 2015

Code to generate mapping for afghanistan in r

#Set Libraries

library(maps)
library(mapdata)
library(maptools)
library(scales)
library(gdata)

#Get the shapefile for Afghan Districts
area <- readShapePoly("/Users/Tim/Downloads/af_new/af.shp")

#Get data from Excel file
dataset<-read.table("/Users/Tim/Downloads/Workbook2.csv")
dataset2<-as.numeric(t(dataset))


#Plot outline map of Afghanistan
map("world","Afghanistan")

#Associate information with each of the data points in the shapefile
area@data$count <- dataset2

#Set the two colours you are varying between
rbPal <- colorRampPalette(bias=1,c('green','yellow'))

#Split the colours between the ranges of data between the colour choices
area@data$Col <- rbPal(4)[as.numeric(cut(area@data$count, seq(0, 2500, by = 625)))]

area@data$bin <- cut(area@data$count, seq(0, 2500, by = 625), 
      include.lowest = TRUE, dig.lab = 4)
lev = levels(area@data$bin)
lev2 <- gsub("\\,", " to ", lev)
lev3 <- gsub("\\]$", "", lev2)
lev4 <- gsub("\\(|\\)", " ", lev3)
lev5 <- gsub("^\\[", " ", lev4)
my.levels <- lev5

#Plot the map
plot(area,col=area@data$Col)
legend("topleft", fill = area@data$Col, legend = my.levels, col = area@data$Col)


Monday, 7 December 2015

A method of collecting data using COM object to create fan charts

'declare variable

Dim serev(48) As Variant


'use COM object to get standard errors from EViews model
serev(1) = app.Get("=eq_fiscal_rev_dom_1.@se")
serev(2) = app.Get("=eq_fiscal_rev_dom_2.@se")
serev(4) = app.Get("=eq_fiscal_rev_dom_4.@se")
serev(5) = app.Get("=eq_fiscal_rev_dom_5.@se")
serev(8) = app.Get("=eq_fiscal_rev_dom_8.@se")
serev(11) = app.Get("=eq_fiscal_rev_dom_11.@se")
serev(14) = app.Get("=eq_fiscal_rev_dom_14.@se")
serev(16) = app.Get("=eq_fiscal_rev_dom_16.@se")
serev(17) = app.Get("=eq_fiscal_rev_dom_17.@se")
serev(18) = app.Get("=eq_fiscal_rev_dom_18.@se")
serev(20) = app.Get("=eq_fiscal_rev_dom_20.@se")
serev(21) = app.Get("=eq_fiscal_rev_dom_21.@se")
serev(22) = app.Get("=eq_fiscal_rev_dom_22.@se")
serev(23) = app.Get("=eq_fiscal_rev_dom_23.@se")
serev(28) = app.Get("=eq_fiscal_rev_dom_28.@se")
serev(29) = app.Get("=eq_fiscal_rev_dom_29.@se")
serev(30) = app.Get("=eq_fiscal_rev_dom_30.@se")
serev(31) = app.Get("=eq_fiscal_rev_dom_31.@se")
serev(32) = app.Get("=eq_fiscal_rev_dom_32.@se")
serev(35) = app.Get("=eq_fiscal_rev_dom_35.@se")
serev(42) = app.Get("=eq_fiscal_rev_dom_42.@se")
serev(44) = app.Get("=eq_fiscal_rev_dom_44.@se")


'create range to place data
Dim revrange As Range

Set revrange = Worksheets("Stochastic Results").Range("B1:B49")

'place data into the range

revrange.Value = WorksheetFunction.Transpose(serev)


Within Excel we then use the NORMINV function to generate a set of ranges of the data, using the standard error from the regressions.


Posted 7:50pm on 7th December 2015