library(knitr) opts_knit$set(root.dir="../../..") # file paths are relative to the root of the project directory opts_chunk$set(echo=FALSE) library(tradeflows) library(dplyr) library(ggplot2) library(reshape2)
# Remove this chunk (or eval=FALSE) when this file is used as a template # The data frame tfdata will be passed by the report generating function to the template # Product and reporter information can be extracted back from tfdata # in the template this would have to be the country appearing most in the data frame productcode_ <- c(440799) reporter_ <- "Cameroon" tfdata <- readdbtbl("raw_flow_yearly") %>% filter(productcode == productcode_ & (reporter == reporter_ | partner == reporter_)) %>% collect
# Only the tfdata variable is passed by the function that creates the report # Extract product code and reporter from the tfdata. productcodeinreport <- unique(tfdata$productcode) reporterinreport <- tfdata %>% group_by(reporter) %>% summarise(nrow = n()) %>% filter(nrow == max(nrow)) reporterinreport <- reporterinreport$reporter # Calculate discrepancies tfdata <- tfdata %>% addpartnerflow %>% calculatediscrepancies
title: "440799 discrepancies sample plots " author: "Paul Rougieux" date: "03/12/2014" output: pdf_document: toc: yes
Most recent years has poor data, look at the year before last.
max(dtf$year)
dtf <- readdbproduct(440799, "raw_flow_yearly") reporterinreport <- 764 flowselected <- "Export" dtf2 <- dtf %>% filter(reportercode == reporterinreport) for (p in unique(dtf$productcode)){ exp <- dtf2 %>% filter(flow == flowselected & year == max(year) & productcode==p) %>% select(partner, weight, discrv) %>% arrange(-weight) %>% rename(discrepancy = discrv) %>% head(10) partnerssorted <- unique(exp$partner) kable(exp) # Order the contries by trade volume exp <- exp %>% mutate(partner = ordered(partner, levels= partnerssorted)) %>% melt(id=c("partner")) chart <- ggplot(data=exp)+ aes(partner, value, fill=variable) + geom_bar(position="dodge", stat="identity") + scale_fill_manual(values = c("chocolate3","black"))+ theme(axis.text.x = element_text(angle = 90, hjust = 1)) + ggtitle(paste(flowselected, p)) print(chart) cat("\n\n") } # write.csv(exp, file="data-raw/export440799_Thailand_mainpartners2013.csv", row.names=FALSE)
Data can be exported to csv, Excel or other formats.
reporterinreport <- 764 # Report could choosedisplay those time series for main partners only partnerinreport <- 156 flowselected <- "Export" productcodeinreport <- 440799 dtf2 <- dtf %>% filter(reportercode == reporterinreport & partnercode==partnerinreport & productcode == productcodeinreport& flow == flowselected) kable(select(dtf2, classification, quantity, weight, tradevalue, discrq, discrq, discrv)) dtf2 <- dtf2 %>% select(year, weight, discrq, quantity, discrq, tradevalue, discrv) %>% melt(id=c("year")) weight <- dtf2 %>% filter(variable %in% c("weight", "discrv")) dtf2$v <- dtf2$variable dtf2$v[dtf2$variable == "discrv"] <- "weight" dtf2$v[dtf2$variable == "discrq"] <- "quantity" dtf2$v[dtf2$variable == "discrv"] <- "tradevalue" # for (v1 in unique(dtf2$v)) ggplot(data=dtf2)+#filter(dtf2,v=="weight"))+ aes(year, value, fill=variable) + geom_bar(position="dodge", stat="identity") + scale_fill_manual(values = rep(c("chocolate3","black"),2))+ theme(axis.text.x = element_text(angle = 90, hjust = 1)) + ggtitle(paste(flowselected, p)) + facet_grid(v~., scales="free_y") # csv file for Sergey # write.csv(dtf2, file="data-raw/export440799_Thailand_to_China.csv", row.names=FALSE)
reporterinreport <- 724 flowselected <- "Import" # yearselected <- max(dtf$year) yearselected <- 2012 dtf2 <- dtf %>% filter(reportercode == reporterinreport) for (p in unique(dtf$productcode)){ exp <- dtf2 %>% filter(flow == flowselected & year == yearselected & productcode==p) %>% select(partner, weight, discrv, tradevalue, discrv, quantity, discrq) %>% arrange(-weight) %>% head(10) partnerssorted <- unique(exp$partner) cat("\n\n") print(kable(rename(exp, discrepancy_weight = discrv))) cat("\n\n") exp <- exp %>% select(partner, weight, discrv) %>% # Order the contries by trade volume mutate(partner = ordered(partner, levels= partnerssorted)) %>% melt(id=c("partner")) chart <- ggplot(data=exp)+ aes(partner, value, fill=variable) + geom_bar(position="dodge", stat="identity") + scale_fill_manual(values = c("chocolate3","black"))+ theme(axis.text.x = element_text(angle = 90, hjust = 1)) + ggtitle(paste(flowselected, p)) cat("\n\n") print(chart) cat("\n\n") } # write.csv(exp, file="data-raw/export440799_Spain_mainpartners2012", # row.names=FALSE)
reporterinreport <- 120 # Cameroon # Report could choosedisplay those time series for main partners only partnerinreport <- 724 # Spain flowselected <- "Export" productcodeinreport <- 440799 dtf2 <- dtf %>% filter(reportercode == reporterinreport & partnercode==partnerinreport & productcode == productcodeinreport& flow == flowselected) kable(select(dtf2, classification, quantity, weight, tradevalue, discrq, discrv, discrv)) dtf2 <- dtf2 %>% select(year, weight, discrv, quantity, discrq, tradevalue, discrv) %>% melt(id=c("year")) weight <- dtf2 %>% filter(variable %in% c("weight", "discrv")) dtf2$v <- dtf2$variable dtf2$v[dtf2$variable == "discrv"] <- "weight" dtf2$v[dtf2$variable == "discrq"] <- "quantity" dtf2$v[dtf2$variable == "discrv"] <- "tradevalue" # for (v1 in unique(dtf2$v)) ggplot(data=dtf2)+#filter(dtf2,v=="weight"))+ aes(year, value, fill=variable) + geom_bar(position="dodge", stat="identity") + scale_fill_manual(values = rep(c("chocolate3","black"),3))+ theme(axis.text.x = element_text(angle = 90, hjust = 1)) + ggtitle(paste(flowselected, p)) + facet_grid(v~., scales="free_y") # write.csv(dtf2, file="data-raw/export440799_Cameroon_to_Spain.csv", # row.names=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.