/* Program reads municipality-level crime rate data */

libname lib100 "W:\Tutkimusprojektit\Kirjanpito\Dokumentaatio\JAR\Datat\";
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\1980_1983_muokattu_160524.xlsx"
out = Rikos_1980_1983
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\1984_1987_muokattu_160524.xlsx"
out = Rikos_1984_1987
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\1988_1991_muokattu_210524.xlsx"
out = Rikos_1988_1991
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\1992_1995_muokattu_210524.xlsx"
out = Rikos_1992_1995
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\1996_1999_muokattu_210524.xlsx"
out = Rikos_1996_1999
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\2000_2003_muokattu_210524.xlsx"
out = Rikos_2000_2003
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\2004_2007_muokattu_210524.xlsx"
out = Rikos_2004_2007
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\2008_2011_muokattu_210524.xlsx"
out = Rikos_2008_2011
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\2012_2015_muokattu_210524.xlsx"
out = Rikos_2012_2015
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\2016_2019_muokattu_210524.xlsx"
out = Rikos_2016_2019
dbms = xlsx
replace;
getnames = yes;
run;

proc import datafile="W:\Uudet_datat\Rikostilastot\Rikokset\Vakilukuun_suhteutetut\uudet\2020_2023_muokattu_210524.xlsx"
out = Rikos_2020_2023
dbms = xlsx
replace;
getnames = yes;
run;

data Rikos_1980_1983_2;
set Rikos_1980_1983;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_1984_1987_2;
set Rikos_1984_1987;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_1988_1991_2;
set Rikos_1988_1991;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_1992_1995_2;
set Rikos_1992_1995;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_1996_1999_2;
set Rikos_1996_1999;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_2000_2003_2;
set Rikos_2000_2003;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_2004_2007_2;
set Rikos_2004_2007;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_2008_2011_2;
set Rikos_2008_2011;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_2012_2015_2;
set Rikos_2012_2015;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_2016_2019_2;
set Rikos_2016_2019;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data Rikos_2020_2023_2;
set Rikos_2020_2023;

if Rikokset_per_1000 = '..' then Rikokset_per_1000 = .;

Rikokset_per_1000_num = Rikokset_per_1000 * 1;

drop Rikokset_per_1000;

run;

data kaikki_rikokset;
set Rikos_1980_1983_2 Rikos_1984_1987_2 Rikos_1988_1991_2 Rikos_1992_1995_2 Rikos_1996_1999_2 Rikos_2000_2003_2 Rikos_2004_2007_2 Rikos_2008_2011_2 Rikos_2012_2015_2 Rikos_2016_2019_2 Rikos_2020_2023_2;

YEAR = Vuosi * 1;

if Kunta ^= lag(Kunta) then Rikoslaji_koodi = 1;
if Kunta = lag(Kunta) then Rikoslaji_koodi + 1;

rename kunta = kunta_koodi;

run;

data kaikki_rikokset_2;
set kaikki_rikokset;

if 1980 <= YEAR <= 2023;

if kunta_koodi = 'SSS' or kunta_koodi = 'X' then delete;

Kunta_chr = substr (kunta_koodi,3,3);
Kunta_2 = substr (kunta_koodi,1,1);
Kunta = Kunta_Chr * 1;

if kunta_2 = 'K' then Onko_kunta = 1;
if Onko_kunta = . then Onko_kunta = 0;

if Onko_kunta = 1;

Talousrikos = 0;
if Rikoslaji_koodi = 16 or Rikoslaji_koodi = 17 or Rikoslaji_koodi = 46 or Rikoslaji_koodi = 48 or Rikoslaji_koodi = 52 or Rikoslaji_koodi = 53 or
Rikoslaji_koodi = 54 or Rikoslaji_koodi = 56 or Rikoslaji_koodi = 59 or Rikoslaji_koodi = 60 or Rikoslaji_koodi = 61 or Rikoslaji_koodi = 62 or
Rikoslaji_koodi = 63 or Rikoslaji_koodi = 64 or Rikoslaji_koodi = 65 or Rikoslaji_koodi = 68 or Rikoslaji_koodi = 69 or Rikoslaji_koodi = 72 then Talousrikos = 1;

run;

* Municipality - year;

proc sort data = kaikki_rikokset_2;
by year kunta;
run;

proc means sum noprint data = kaikki_rikokset_2;
where Rikoslaji_koodi = 1;
by year kunta;
var Rikokset_per_1000_num;
output out = Kaikki_rikos_kunta_vuosi sum = Kaikki_rikokset_vuosi;
run;

proc means sum noprint data = kaikki_rikokset_2;
where Talousrikos = 1;
by year kunta;
var Rikokset_per_1000_num;
output out = Talous_rikos_kunta_vuosi sum = Talous_rikokset_vuosi;
run;

data Kaikki_rikos_kunta_vuosi_2;
merge Kaikki_rikos_kunta_vuosi Talous_rikos_kunta_vuosi;
by year kunta;

Muut_rikokset_vuosi = Kaikki_rikokset_vuosi - Talous_rikokset_vuosi;

drop _type_ _freq_;

run;

* Municipality;

proc sort data = Kaikki_rikos_kunta_vuosi_2;
by kunta;
run;

proc means mean noprint data = Kaikki_rikos_kunta_vuosi_2;
where 1980 <= YEAR <= 2018;
by kunta;
var Kaikki_rikokset_vuosi Talous_rikokset_vuosi Muut_rikokset_vuosi;
output out = Rikokset_kunta mean = Kaikki_rikokset_kunta Talous_rikokset_kunta Muut_rikokset_kunta;
run;

proc means mean noprint data = Kaikki_rikos_kunta_vuosi_2;
where 1980 <= YEAR <= 1989;
by kunta;
var Kaikki_rikokset_vuosi Talous_rikokset_vuosi Muut_rikokset_vuosi;
output out = Rikokset_kunta_80 mean = Kaikki_rikokset_kunta_80 Talous_rikokset_kunta_80 Muut_rikokset_kunta_80;
run;

proc means mean noprint data = Kaikki_rikos_kunta_vuosi_2;
where 1990 <= YEAR <= 1999;
by kunta;
var Kaikki_rikokset_vuosi Talous_rikokset_vuosi Muut_rikokset_vuosi;
output out = Rikokset_kunta_90 mean = Kaikki_rikokset_kunta_90 Talous_rikokset_kunta_90 Muut_rikokset_kunta_90;
run;

proc means mean noprint data = Kaikki_rikos_kunta_vuosi_2;
where 2000 <= YEAR <= 2009;
by kunta;
var Kaikki_rikokset_vuosi Talous_rikokset_vuosi Muut_rikokset_vuosi;
output out = Rikokset_kunta_00 mean = Kaikki_rikokset_kunta_00 Talous_rikokset_kunta_00 Muut_rikokset_kunta_00;
run;

proc means mean noprint data = Kaikki_rikos_kunta_vuosi_2;
where 2010 <= YEAR <= 2018;
by kunta;
var Kaikki_rikokset_vuosi Talous_rikokset_vuosi Muut_rikokset_vuosi;
output out = Rikokset_kunta_10 mean = Kaikki_rikokset_kunta_10 Talous_rikokset_kunta_10 Muut_rikokset_kunta_10;
run;

data Rikokset_kunta_2;
merge Rikokset_kunta Rikokset_kunta_80 Rikokset_kunta_90 Rikokset_kunta_00 Rikokset_kunta_10;
by kunta;
drop _type_ _freq_;
run;

* Regions;

data kaikki_rikokset_maakunta;
set Rikos_1980_1983_2 Rikos_1984_1987_2 Rikos_1988_1991_2 Rikos_1992_1995_2 Rikos_1996_1999_2 Rikos_2000_2003_2 Rikos_2004_2007_2 Rikos_2008_2011_2 Rikos_2012_2015_2 Rikos_2016_2019_2 Rikos_2020_2023_2;

YEAR = Vuosi * 1;

if Kunta ^= lag(Kunta) then Rikoslaji_koodi = 1;
if Kunta = lag(Kunta) then Rikoslaji_koodi + 1;

rename kunta = kunta_koodi;

run;

data kaikki_rikokset_maakunta_2;
set kaikki_rikokset_maakunta;

if 1980 <= YEAR <= 2023;

if kunta_koodi = 'SSS' or kunta_koodi = 'X' then delete;

Kunta_chr = substr (kunta_koodi,3,2);
Kunta_2 = substr (kunta_koodi,1,1);
Kunta = Kunta_Chr * 1;

if kunta_2 = 'M' then Onko_maakunta = 1;
if Onko_maakunta = . then Onko_maakunta = 0;

if Onko_maakunta = 1;

* Financial crimes;

Talousrikos = 0;
if Rikoslaji_koodi = 16 or Rikoslaji_koodi = 17 or Rikoslaji_koodi = 46 or Rikoslaji_koodi = 48 or Rikoslaji_koodi = 52 or Rikoslaji_koodi = 53 or
Rikoslaji_koodi = 54 or Rikoslaji_koodi = 56 or Rikoslaji_koodi = 59 or Rikoslaji_koodi = 60 or Rikoslaji_koodi = 61 or Rikoslaji_koodi = 62 or
Rikoslaji_koodi = 63 or Rikoslaji_koodi = 64 or Rikoslaji_koodi = 65 or Rikoslaji_koodi = 68 or Rikoslaji_koodi = 69 or Rikoslaji_koodi = 72 then Talousrikos = 1;

rename kunta = maakunta;

run;

* Region - year;

proc sort data = kaikki_rikokset_maakunta_2;
by year maakunta;
run;

proc means sum noprint data = kaikki_rikokset_maakunta_2;
where Rikoslaji_koodi = 1;
by year maakunta;
var Rikokset_per_1000_num;
output out = Kaikki_rikos_maakunta_vuosi sum = Kaikki_rikokset_maakunta_vuosi;
run;

proc means sum noprint data = kaikki_rikokset_maakunta_2;
where Talousrikos = 1;
by year maakunta;
var Rikokset_per_1000_num;
output out = Talous_rikos_maakunta_vuosi sum = Talous_rikokset_maakunta_vuosi;
run;

data Kaikki_rikos_maakunta_vuosi_2;
merge Kaikki_rikos_maakunta_vuosi Talous_rikos_maakunta_vuosi;
by year maakunta;

Muut_rikokset_maakunta_vuosi = Kaikki_rikokset_maakunta_vuosi - Talous_rikokset_maakunta_vuosi;

drop _type_ _freq_;

run;

* Regions; 

proc sort data = Kaikki_rikos_maakunta_vuosi_2;
by maakunta;
run;

proc means mean noprint data = Kaikki_rikos_maakunta_vuosi_2;
where 1980 <= YEAR <= 2018;
by maakunta;
var Kaikki_rikokset_maakunta_vuosi Talous_rikokset_maakunta_vuosi Muut_rikokset_maakunta_vuosi;
output out = Rikokset_maakunta mean = Kaikki_rikokset_maakunta Talous_rikokset_maakunta Muut_rikokset_maakunta;
run;

data Rikokset_maakunta_2;
set Rikokset_maakunta;

drop _type_ _freq_;
run;

* Saves data;

* Municipality;

data lib100.Rikokset_kunta_vuosi_050624;
set Kaikki_rikos_kunta_vuosi_2;
run;

data lib100.Rikokset_kunta_110624;
set Rikokset_kunta_2;
run;

* Regions;

data lib100.Rikokset_maakunta_vuosi_050624;
set Kaikki_rikos_maakunta_vuosi_2;
run;

data lib100.Rikokset_maakunta_050624;
set Rikokset_maakunta_2;
run;
