#DATA IMPORT

#############
library(plm)
#############

#use documents folder!

#DEFINING HP-FILTER
hpfilter<-function(x,lambda=1600){
eye <- diag(length(x))
result <- solve(eye+lambda*crossprod(diff(eye,lag=1,d=2)),x)
return(result)
}

#DATA IMPORT AND MANIPULATION
dat.raw<-read.table("dat_final.csv", header=TRUE, sep=",")

countries <- c("bd", "fr", "fn", "bg", "nl", "oe", "it", "es", "pt", "gr", "uk", "sd", "no", "ch", "dk")

for (couni in countries) { 
eval(parse(text=paste('dat.',couni,'<-dat.raw[, c("time", "quarter", "',couni,'.idn", "',couni,'.id", "',couni,'.nfl.gdp", "',couni,'.ta.gdp", "',couni,'.tdd", "',couni,'.reer", "',couni,'.reeru")]',sep="")))
for (i in 8:8) {
eval(parse(text=paste('dat.',couni,'$',couni,'.vol<-c(rep(NA,',i,'-1),hpfilter(na.omit((filter((dat.',couni,'[,"',couni,'.reer"])^2, rep(1/',i,',',i,'), sides=1) - (filter(dat.',couni,'[,"',couni,'.reer"], rep(1/',i,',',i,'), sides=1))^2)^(1/2))))',sep="")))
}
}

# EXPORT FOR STATA
dat.pan<-data.frame(rbind(as.matrix(dat.bd),as.matrix(dat.fr),as.matrix(dat.fn),as.matrix(dat.bg),as.matrix(dat.nl),as.matrix(dat.oe),as.matrix(dat.it),as.matrix(dat.es),as.matrix(dat.pt),as.matrix(dat.gr)))
colnames(dat.pan)<-c("time", "quarter", "idn", "id", "nfl", "ta", "tdd", "reer", "reeru", "vol")
write.csv(dat.pan,"dat_pan.csv",row.names=F,na=".")

dat.pan.all<-data.frame(rbind(as.matrix(dat.bd),as.matrix(dat.fr),as.matrix(dat.fn),as.matrix(dat.bg),as.matrix(dat.nl),as.matrix(dat.oe),as.matrix(dat.it),as.matrix(dat.es),as.matrix(dat.pt),as.matrix(dat.gr),as.matrix(dat.uk),as.matrix(dat.sd),as.matrix(dat.no),as.matrix(dat.ch),as.matrix(dat.dk)))
colnames(dat.pan.all)<-c("time", "quarter", "idn", "id", "nfl", "ta", "tdd", "reer", "reeru")
write.csv(dat.pan.all,"dat_pan_all.csv",row.names=F,na=".")

# WITHIN TRANSFORMATION
for (couni in countries) { 
eval(parse(text=paste('dat.',couni,'.w<-dat.',couni,'[,1:4]',sep="")))
eval(parse(text=paste('dat.',couni,'.w$nfl<-dat.',couni,'$',couni,'.nfl.gdp-ave(na.omit(dat.',couni,'$',couni,'.nfl.gdp))',sep="")))
eval(parse(text=paste('dat.',couni,'.w$ta<-dat.',couni,'$',couni,'.ta.gdp-ave(na.omit(dat.',couni,'$',couni,'.ta.gdp))',sep="")))
eval(parse(text=paste('dat.',couni,'.w$tdd<-dat.',couni,'$',couni,'.tdd-ave(na.omit(dat.',couni,'$',couni,'.tdd))',sep="")))
eval(parse(text=paste('dat.',couni,'.w$reeru<-dat.',couni,'$',couni,'.reeru-ave(na.omit(dat.',couni,'$',couni,'.reeru))',sep="")))
for (i in 8:8) {
eval(parse(text=paste('dat.',couni,'.w$vol<-dat.',couni,'$',couni,'.vol-ave(na.omit(dat.',couni,'$',couni,'.vol))',sep="")))
}
}

dat.pan.w<-data.frame(rbind(as.matrix(dat.bd.w),as.matrix(dat.fr.w),as.matrix(dat.fn.w),as.matrix(dat.bg.w),as.matrix(dat.nl.w),as.matrix(dat.oe.w),as.matrix(dat.it.w),as.matrix(dat.es.w),as.matrix(dat.pt.w),as.matrix(dat.gr.w),as.matrix(dat.uk.w),as.matrix(dat.sd.w),as.matrix(dat.no.w),as.matrix(dat.ch.w),as.matrix(dat.dk.w)))
colnames(dat.pan.w)<-c("time", "quarter","idn","id","nfl","ta","tdd","reeru","vol")
write.csv(dat.pan.w,"dat_pan_w1.csv",row.names=F)




