SlideShare a Scribd company logo
Trading volume mapping
in recent environment
Global Tokyo. 1
@teramonagi
Motivation of this Talk
• is rapidly evolving in recent years.
• Greate packages are appearing one after
another!!!
• Needless to say, googleVis too
• Let me show how to use these for data
analysis in this presentation
1. Data manipulation by dplyr
2. Visualization by rMaps
2
Libraries to be needed
3
library(data.table)
library(rMaps)
library(dplyr)
library(magrittr)
library(countrycode)
library(xts)
library(pings)
4
I forgot to use googleVis
Sorry!!!
5
Before we get on
the main subject
Fantastic collaboration -dplyr, magrittr, pings-
• You can chain commands with
forward-pipe operator %>%
(magrittr)
• Data manipulation like “mutate”,
“group_by”, “summarize” (dplyr)
• Soundlize(?) data manipulation
(pings)
6
Fantastic collaboration -dplyr, magrittr, pings-
• Install and load packages
7
library(devtools)
install_github(“dichika/pings”)
install.packages(c(“dplyr”, “magrittr”))
library(pings)
library(dplyr)
library(magrittr)
You can write like this(dplyr+magritter):
8
iris %>%
#add new column “width”
mutate(Width=Sepal.Width+Petal.Width) %>%
#grouping data by species
group_by(Species) %>%
#calculate mean value of Width column
summarize(AverageWidth=mean(Width)) %>%
#Extract only the column “AverageWidth”
use_series(AverageWidth) %>%
#Dvide AverageWidth value by 3
divide_by(3) %>%
#Get the maximum value of AverageWidth/3
max
You can write like this(dplyr+magritter+pings):
9
pings(iris %>%
#add new column “width”
mutate(Width=Sepal.Width+Petal.Width) %>%
#grouping data by species
group_by(Species) %>%
#calculate mean value of Width column
summarize(AverageWidth=mean(Width)) %>%
#Extract only the column “AverageWidth”
use_series(AverageWidth) %>%
#Dvide AverageWidth value by 3
divide_by(3) %>%
#Get the maximum value of AverageWidth/3
max)
10
You will be hooked on this sound
11
Get back to
the main subject
Data for analysis….
• I prepared trading volume data
• It is already formed
• I used “data.table” package which
gives us the function to fast speed
data loading(fread function)
12
Data for analysis…
13
> str(x)
Classes ‘data.table’ and 'data.frame':
21245 obs. of 5 variables:
$ Date : Date, format: "2012-11-01" "2012-11-
01" ...
$ User_Country: chr "AR" "AT" "AU" "BD" ...
$ Amount : num 775582 931593 565871 566 7986 ...
$ ISO3C : chr "ARG" "AUT" "AUS" "BGD" ...
$ Date2 : num 15645 15645 15645 15645 15645 ...
- attr(*, ".internal.selfref")=
> head(x)
Date User_Country Amount ISO3C Date2
1 2012-11-01 AR 775581.543 ARG 15645
2 2012-11-01 AT 931592.986 AUT 15645
3 2012-11-01 AU 565870.994 AUS 15645
4 2012-11-01 BD 565.863 BGD 15645
5 2012-11-01 BE 7985.860 BEL 15645
6 2012-11-01 BG 56863.958 BGR 15645
Data processing by dplyr
14
> xs <- x %>%
+ mutate(YearMonth=as.yearmon(Date)) %>%
+ group_by(YearMonth, ISO3C) %>%
+ summarize(Amount=floor(sum(Amount)/10^4))
> head(xs)
YearMonth ISO3C Amount
1 11 2012 ALB 0
2 11 2012 ARE 7
3 11 2012 ARG 647
4 11 2012 AUS 2153
5 11 2012 AUT 503
6 11 2012 BEL 41
Data processing by dplyr
15
> xs <- xs %>%
+ tally %>%
+ select(YearMonth) %>%
+ mutate(Counter=row_number(YearMonth)) %>%
+ inner_join(y=xs)
> head(xs)
YearMonth Counter ISO3C Amount
1 11 2012 1 ALB 0
2 11 2012 1 ARE 7
3 11 2012 1 ARG 647
4 11 2012 1 AUS 2153
Data processing by dplyr
• Define some variables we use later
16
> min.date <- xs %>%
+ use_series(YearMonth) %>%
+ as.Date %>% min %>% as.character
> max.counter <- xs %>%
+ use_series(Counter) %>% max
> min.date
[1] "2012-11-01"
> max.counter
[1] 12
Visualize with rMaps
• Install and load rMaps
17
library(devtools)
install_github('ramnathv/rCharts@dev')
install_github('ramnathv/rMaps')
library(rMaps)
Visualize with rMaps
• Easy to visualize yearly data
• But, we have monthly data
• We need to customize template
HTML and javascript code
• Little bit long code…
18
Visualize with rMaps
19
d <- ichoropleth(log(Amount) ~ ISO3C, data=as.data.frame(xs), animate="Counter", map="world")
d$setTemplate(chartDiv = sprintf("
<div class='container'>
<button ng-click='animateMap()'>Play</button>
<span ng-bind='date_show'></span>
<div id='{{chartId}}' class='rChart datamaps'></div>
</div>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js'></script>
<script>
function rChartsCtrl($scope, $timeout){
$scope.counter = 1;
$scope.date = new Date('%s');
$scope.date_show = $.datepicker.formatDate('yy-mm', $scope.date);
$scope.animateMap = function(){
if ($scope.counter > %s){
return;
}
map{{chartId}}.updateChoropleth(chartParams.newData[$scope.counter]);
$scope.counter += 1;
$scope.date.setMonth($scope.date.getMonth()+1);
$scope.date_show = $.datepicker.formatDate('yy-mm', $scope.date);
$timeout($scope.animateMap, 1000)
}
}
</script>", min.date, max.counter)
)
d
Visualize with rMaps
20
All Codes in this presentation:
21
github.com/teramonagi/GlobalTokyoR1
Enjoy!!!
22

More Related Content

PDF
Storing metrics at scale with Gnocchi
Gordon Chung
 
PDF
The Gnocchi Experiment
Gordon Chung
 
PDF
Scala Meetup Hamburg - Spark
Ivan Morozov
 
PDF
You might be paying too much for BigQuery
Ryuji Tamagawa
 
PDF
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Altinity Ltd
 
PDF
Scaling up data science applications
Kexin Xie
 
PPTX
MySQL performance monitoring using Statsd and Graphite (PLUK2013)
spil-engineering
 
PDF
Ceilometer to Gnocchi
Gordon Chung
 
Storing metrics at scale with Gnocchi
Gordon Chung
 
The Gnocchi Experiment
Gordon Chung
 
Scala Meetup Hamburg - Spark
Ivan Morozov
 
You might be paying too much for BigQuery
Ryuji Tamagawa
 
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Altinity Ltd
 
Scaling up data science applications
Kexin Xie
 
MySQL performance monitoring using Statsd and Graphite (PLUK2013)
spil-engineering
 
Ceilometer to Gnocchi
Gordon Chung
 

What's hot (20)

PDF
Sea Amsterdam 2014 November 19
GoDataDriven
 
PDF
Google Cloud Storage backup and archive
Ido Green
 
PDF
ClickHouse Introduction by Alexander Zaitsev, Altinity CTO
Altinity Ltd
 
PDF
Obtaining the Perfect Smoke By Monitoring Your BBQ with InfluxDB and Telegraf
InfluxData
 
PDF
BigQueryで作る分析環境
将央 山口
 
ODP
Data analytics with hadoop hive on multiple data centers
Hirotaka Niisato
 
PDF
RDO hangout on gnocchi
Eoghan Glynn
 
PDF
Analyzing Larger RasterData in a Jupyter Notebook with GeoPySpark on AWS - FO...
Rob Emanuele
 
PDF
codecentric AG: Using Cassandra and Clojure for Data Crunching backends
DataStax Academy
 
PPTX
Weather of the Century: Visualization
MongoDB
 
PPTX
Taming the Tiger: Tips and Tricks for Using Telegraf
InfluxData
 
PDF
Around the world with extensions | PostgreSQL Conference Europe 2018 | Craig ...
Citus Data
 
PDF
Climate data in r with the raster package
Alberto Labarga
 
PDF
Big Data Day LA 2015 - Large Scale Distinct Count -- The HyperLogLog algorith...
Data Con LA
 
PDF
Meet the Experts: Visualize Your Time-Stamped Data Using the React-Based Gira...
InfluxData
 
PDF
HyperLogLog in Hive - How to count sheep efficiently?
bzamecnik
 
PDF
Collecting metrics with Graphite and StatsD
itnig
 
PDF
The Weather of the Century
MongoDB
 
PPTX
Supercharge your Analytics with ClickHouse, v.2. By Vadim Tkachenko
Altinity Ltd
 
PDF
The Weather of the Century Part 3: Visualization
MongoDB
 
Sea Amsterdam 2014 November 19
GoDataDriven
 
Google Cloud Storage backup and archive
Ido Green
 
ClickHouse Introduction by Alexander Zaitsev, Altinity CTO
Altinity Ltd
 
Obtaining the Perfect Smoke By Monitoring Your BBQ with InfluxDB and Telegraf
InfluxData
 
BigQueryで作る分析環境
将央 山口
 
Data analytics with hadoop hive on multiple data centers
Hirotaka Niisato
 
RDO hangout on gnocchi
Eoghan Glynn
 
Analyzing Larger RasterData in a Jupyter Notebook with GeoPySpark on AWS - FO...
Rob Emanuele
 
codecentric AG: Using Cassandra and Clojure for Data Crunching backends
DataStax Academy
 
Weather of the Century: Visualization
MongoDB
 
Taming the Tiger: Tips and Tricks for Using Telegraf
InfluxData
 
Around the world with extensions | PostgreSQL Conference Europe 2018 | Craig ...
Citus Data
 
Climate data in r with the raster package
Alberto Labarga
 
Big Data Day LA 2015 - Large Scale Distinct Count -- The HyperLogLog algorith...
Data Con LA
 
Meet the Experts: Visualize Your Time-Stamped Data Using the React-Based Gira...
InfluxData
 
HyperLogLog in Hive - How to count sheep efficiently?
bzamecnik
 
Collecting metrics with Graphite and StatsD
itnig
 
The Weather of the Century
MongoDB
 
Supercharge your Analytics with ClickHouse, v.2. By Vadim Tkachenko
Altinity Ltd
 
The Weather of the Century Part 3: Visualization
MongoDB
 
Ad

Similar to Trading volume mapping R in recent environment (20)

PDF
Apache Cassandra at Macys
DataStax Academy
 
PDF
Adios hadoop, Hola Spark! T3chfest 2015
dhiguero
 
PPTX
Examining Oracle GoldenGate Trail Files
Bobby Curtis
 
PDF
New Developments in Spark
Databricks
 
PDF
Introduction to R for data science
Long Nguyen
 
PPTX
Dataiku - hadoop ecosystem - @Epitech Paris - janvier 2014
Dataiku
 
PDF
Pivotal Greenplum 次世代マルチクラウド・データ分析プラットフォーム
Masayuki Matsushita
 
PPTX
Taboola's experience with Apache Spark (presentation @ Reversim 2014)
tsliwowicz
 
ODP
Scaling PostgreSQL With GridSQL
Jim Mlodgenski
 
PDF
Improving Apache Spark Downscaling
Databricks
 
PPTX
Jss 2015 in memory and operational analytics
David Barbarin
 
PPTX
[JSS2015] In memory and operational analytics
GUSS
 
PDF
Hadoop
Rajesh Piryani
 
PDF
Improving the performance of Odoo deployments
Odoo
 
PDF
Dplyr v2 . Exploratory data analysis.pdf
PrinceUzair4
 
PDF
HadoopThe Hadoop Java Software Framework
ThoughtWorks
 
PDF
Extreme Replication - RMOUG Presentation
Bobby Curtis
 
PPTX
The Tidyverse and the Future of the Monitoring Toolchain
John Rauser
 
PPT
HIVE: Data Warehousing & Analytics on Hadoop
Zheng Shao
 
PDF
Complex realtime event analytics using BigQuery @Crunch Warmup
Márton Kodok
 
Apache Cassandra at Macys
DataStax Academy
 
Adios hadoop, Hola Spark! T3chfest 2015
dhiguero
 
Examining Oracle GoldenGate Trail Files
Bobby Curtis
 
New Developments in Spark
Databricks
 
Introduction to R for data science
Long Nguyen
 
Dataiku - hadoop ecosystem - @Epitech Paris - janvier 2014
Dataiku
 
Pivotal Greenplum 次世代マルチクラウド・データ分析プラットフォーム
Masayuki Matsushita
 
Taboola's experience with Apache Spark (presentation @ Reversim 2014)
tsliwowicz
 
Scaling PostgreSQL With GridSQL
Jim Mlodgenski
 
Improving Apache Spark Downscaling
Databricks
 
Jss 2015 in memory and operational analytics
David Barbarin
 
[JSS2015] In memory and operational analytics
GUSS
 
Improving the performance of Odoo deployments
Odoo
 
Dplyr v2 . Exploratory data analysis.pdf
PrinceUzair4
 
HadoopThe Hadoop Java Software Framework
ThoughtWorks
 
Extreme Replication - RMOUG Presentation
Bobby Curtis
 
The Tidyverse and the Future of the Monitoring Toolchain
John Rauser
 
HIVE: Data Warehousing & Analytics on Hadoop
Zheng Shao
 
Complex realtime event analytics using BigQuery @Crunch Warmup
Márton Kodok
 
Ad

More from Nagi Teramo (20)

PDF
第86回R勉強会@東京 LT資料
Nagi Teramo
 
PDF
Rでを作る
Nagi Teramo
 
PPTX
Reproducebility 100倍 Dockerマン
Nagi Teramo
 
PDF
healthplanetパッケージで 体組成データを手に入れて 健康な体も手に入れる
Nagi Teramo
 
PDF
闇と向き合う
Nagi Teramo
 
PDF
機械の体を手に入れるのよ、 鉄郎!!!
Nagi Teramo
 
PDF
続わかりやすいパターン認識11章(11.1 - 11.4)
Nagi Teramo
 
PDF
5分でわかるかもしれないglmnet
Nagi Teramo
 
PDF
Ultra Lightning Talk × 3
Nagi Teramo
 
PDF
F#談話室(17)
Nagi Teramo
 
PDF
RFinanceJはじめました
Nagi Teramo
 
PDF
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
Nagi Teramo
 
PDF
お前の逐モン、GETだぜ!
Nagi Teramo
 
PDF
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
Nagi Teramo
 
PDF
とある金融屋の統計技師が時系列解析してみた
Nagi Teramo
 
PDF
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
 
PDF
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
Nagi Teramo
 
PDF
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Nagi Teramo
 
PDF
レプリカ交換モンテカルロ法で乱数の生成
Nagi Teramo
 
PDF
Rで学ぶ逆変換(逆関数)法
Nagi Teramo
 
第86回R勉強会@東京 LT資料
Nagi Teramo
 
Rでを作る
Nagi Teramo
 
Reproducebility 100倍 Dockerマン
Nagi Teramo
 
healthplanetパッケージで 体組成データを手に入れて 健康な体も手に入れる
Nagi Teramo
 
闇と向き合う
Nagi Teramo
 
機械の体を手に入れるのよ、 鉄郎!!!
Nagi Teramo
 
続わかりやすいパターン認識11章(11.1 - 11.4)
Nagi Teramo
 
5分でわかるかもしれないglmnet
Nagi Teramo
 
Ultra Lightning Talk × 3
Nagi Teramo
 
F#談話室(17)
Nagi Teramo
 
RFinanceJはじめました
Nagi Teramo
 
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
Nagi Teramo
 
お前の逐モン、GETだぜ!
Nagi Teramo
 
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
Nagi Teramo
 
とある金融屋の統計技師が時系列解析してみた
Nagi Teramo
 
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
Nagi Teramo
 
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Nagi Teramo
 
レプリカ交換モンテカルロ法で乱数の生成
Nagi Teramo
 
Rで学ぶ逆変換(逆関数)法
Nagi Teramo
 

Recently uploaded (20)

PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Doc9.....................................
SofiaCollazos
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 

Trading volume mapping R in recent environment

  • 1. Trading volume mapping in recent environment Global Tokyo. 1 @teramonagi
  • 2. Motivation of this Talk • is rapidly evolving in recent years. • Greate packages are appearing one after another!!! • Needless to say, googleVis too • Let me show how to use these for data analysis in this presentation 1. Data manipulation by dplyr 2. Visualization by rMaps 2
  • 3. Libraries to be needed 3 library(data.table) library(rMaps) library(dplyr) library(magrittr) library(countrycode) library(xts) library(pings)
  • 4. 4 I forgot to use googleVis Sorry!!!
  • 5. 5 Before we get on the main subject
  • 6. Fantastic collaboration -dplyr, magrittr, pings- • You can chain commands with forward-pipe operator %>% (magrittr) • Data manipulation like “mutate”, “group_by”, “summarize” (dplyr) • Soundlize(?) data manipulation (pings) 6
  • 7. Fantastic collaboration -dplyr, magrittr, pings- • Install and load packages 7 library(devtools) install_github(“dichika/pings”) install.packages(c(“dplyr”, “magrittr”)) library(pings) library(dplyr) library(magrittr)
  • 8. You can write like this(dplyr+magritter): 8 iris %>% #add new column “width” mutate(Width=Sepal.Width+Petal.Width) %>% #grouping data by species group_by(Species) %>% #calculate mean value of Width column summarize(AverageWidth=mean(Width)) %>% #Extract only the column “AverageWidth” use_series(AverageWidth) %>% #Dvide AverageWidth value by 3 divide_by(3) %>% #Get the maximum value of AverageWidth/3 max
  • 9. You can write like this(dplyr+magritter+pings): 9 pings(iris %>% #add new column “width” mutate(Width=Sepal.Width+Petal.Width) %>% #grouping data by species group_by(Species) %>% #calculate mean value of Width column summarize(AverageWidth=mean(Width)) %>% #Extract only the column “AverageWidth” use_series(AverageWidth) %>% #Dvide AverageWidth value by 3 divide_by(3) %>% #Get the maximum value of AverageWidth/3 max)
  • 10. 10 You will be hooked on this sound
  • 11. 11 Get back to the main subject
  • 12. Data for analysis…. • I prepared trading volume data • It is already formed • I used “data.table” package which gives us the function to fast speed data loading(fread function) 12
  • 13. Data for analysis… 13 > str(x) Classes ‘data.table’ and 'data.frame': 21245 obs. of 5 variables: $ Date : Date, format: "2012-11-01" "2012-11- 01" ... $ User_Country: chr "AR" "AT" "AU" "BD" ... $ Amount : num 775582 931593 565871 566 7986 ... $ ISO3C : chr "ARG" "AUT" "AUS" "BGD" ... $ Date2 : num 15645 15645 15645 15645 15645 ... - attr(*, ".internal.selfref")= > head(x) Date User_Country Amount ISO3C Date2 1 2012-11-01 AR 775581.543 ARG 15645 2 2012-11-01 AT 931592.986 AUT 15645 3 2012-11-01 AU 565870.994 AUS 15645 4 2012-11-01 BD 565.863 BGD 15645 5 2012-11-01 BE 7985.860 BEL 15645 6 2012-11-01 BG 56863.958 BGR 15645
  • 14. Data processing by dplyr 14 > xs <- x %>% + mutate(YearMonth=as.yearmon(Date)) %>% + group_by(YearMonth, ISO3C) %>% + summarize(Amount=floor(sum(Amount)/10^4)) > head(xs) YearMonth ISO3C Amount 1 11 2012 ALB 0 2 11 2012 ARE 7 3 11 2012 ARG 647 4 11 2012 AUS 2153 5 11 2012 AUT 503 6 11 2012 BEL 41
  • 15. Data processing by dplyr 15 > xs <- xs %>% + tally %>% + select(YearMonth) %>% + mutate(Counter=row_number(YearMonth)) %>% + inner_join(y=xs) > head(xs) YearMonth Counter ISO3C Amount 1 11 2012 1 ALB 0 2 11 2012 1 ARE 7 3 11 2012 1 ARG 647 4 11 2012 1 AUS 2153
  • 16. Data processing by dplyr • Define some variables we use later 16 > min.date <- xs %>% + use_series(YearMonth) %>% + as.Date %>% min %>% as.character > max.counter <- xs %>% + use_series(Counter) %>% max > min.date [1] "2012-11-01" > max.counter [1] 12
  • 17. Visualize with rMaps • Install and load rMaps 17 library(devtools) install_github('ramnathv/rCharts@dev') install_github('ramnathv/rMaps') library(rMaps)
  • 18. Visualize with rMaps • Easy to visualize yearly data • But, we have monthly data • We need to customize template HTML and javascript code • Little bit long code… 18
  • 19. Visualize with rMaps 19 d <- ichoropleth(log(Amount) ~ ISO3C, data=as.data.frame(xs), animate="Counter", map="world") d$setTemplate(chartDiv = sprintf(" <div class='container'> <button ng-click='animateMap()'>Play</button> <span ng-bind='date_show'></span> <div id='{{chartId}}' class='rChart datamaps'></div> </div> <script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script> <script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js'></script> <script> function rChartsCtrl($scope, $timeout){ $scope.counter = 1; $scope.date = new Date('%s'); $scope.date_show = $.datepicker.formatDate('yy-mm', $scope.date); $scope.animateMap = function(){ if ($scope.counter > %s){ return; } map{{chartId}}.updateChoropleth(chartParams.newData[$scope.counter]); $scope.counter += 1; $scope.date.setMonth($scope.date.getMonth()+1); $scope.date_show = $.datepicker.formatDate('yy-mm', $scope.date); $timeout($scope.animateMap, 1000) } } </script>", min.date, max.counter) ) d
  • 21. All Codes in this presentation: 21 github.com/teramonagi/GlobalTokyoR1