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
PDF
The Gnocchi Experiment
PDF
Scala Meetup Hamburg - Spark
PDF
You might be paying too much for BigQuery
PDF
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
PDF
Scaling up data science applications
PPTX
MySQL performance monitoring using Statsd and Graphite (PLUK2013)
PDF
Ceilometer to Gnocchi
Storing metrics at scale with Gnocchi
The Gnocchi Experiment
Scala Meetup Hamburg - Spark
You might be paying too much for BigQuery
Dangerous on ClickHouse in 30 minutes, by Robert Hodges, Altinity CEO
Scaling up data science applications
MySQL performance monitoring using Statsd and Graphite (PLUK2013)
Ceilometer to Gnocchi

What's hot (20)

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

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

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

More from Nagi Teramo (20)

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

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
Chapter 5: Probability Theory and Statistics
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Zenith AI: Advanced Artificial Intelligence
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
1. Introduction to Computer Programming.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Chapter 5: Probability Theory and Statistics
A comparative analysis of optical character recognition models for extracting...
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Getting Started with Data Integration: FME Form 101
Digital-Transformation-Roadmap-for-Companies.pptx
WOOl fibre morphology and structure.pdf for textiles
Univ-Connecticut-ChatGPT-Presentaion.pdf
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Zenith AI: Advanced Artificial Intelligence
Programs and apps: productivity, graphics, security and other tools
Enhancing emotion recognition model for a student engagement use case through...
TLE Review Electricity (Electricity).pptx
Assigned Numbers - 2025 - Bluetooth® Document
1. Introduction to Computer Programming.pptx
Unlocking AI with Model Context Protocol (MCP)
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
From MVP to Full-Scale Product A Startup’s Software Journey.pdf

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