SlideShare a Scribd company logo
Perl for
Visualization
YAPCASIA:2013 9/21
113年9月21日土曜日
print Dumper $me
{
twitter => “@muddydixon”,
organization => “NIFTY”,
job => “low spec full stack engineer”,
skill => [
“data collecting”,
“data cleansing”,
“visualization”,
]
}
213年9月21日土曜日
Today’s Topic
313年9月21日土曜日
Today’s Topic
413年9月21日土曜日
Key of Visualization
STORIES
are main concept of visualization
are buried in data
enhance your business
513年9月21日土曜日
Visualization
Two purposes:
1.Explanatory visualization
2.Exploratory visualization
613年9月21日土曜日
Explanatory visualization
communicating information
clearly and effectively
713年9月21日土曜日
813年9月21日土曜日
Can you find
STORIES?
913年9月21日土曜日
1013年9月21日土曜日
1113年9月21日土曜日
1213年9月21日土曜日
加齢による
技術向上
The more use, the higher skill
1313年9月21日土曜日
1413年9月21日土曜日
ひとりで
できない
10年選手は
いなかったEverybody who touch perl 10 years use perl :)
1513年9月21日土曜日
1613年9月21日土曜日
7-9年目に
がんばろう
7-10 years users practice more!
1713年9月21日土曜日
1813年9月21日土曜日
ここから
読み取る
のはムリ
We cannot find STORIES from text log
1913年9月21日土曜日
This is the
POWER of
Explanatory
visualization 2013年9月21日土曜日
I / You can
inform STORIES in data
to my / your colleague
to my / your boss
to my / your audiences
2113年9月21日土曜日
Exploratory visualization
Visualization allow you to find
STORIES from data
Data Mining
2213年9月21日土曜日
via(道具としての)データサイエンティストのつかい方
2313年9月21日土曜日
Problems
Data Mining Engineer
a few domain specific knowledge
Domain Specialist
a few mining skill
2413年9月21日土曜日
GOAL
Business
Success
Domain Specific Knowledge
Data Mining Skill
2513年9月21日土曜日
How to apply
Domain Specific Knowledge
to
Data Mining Processes
2613年9月21日土曜日
What is Glue between two?
What is Ladder to Goal?
2713年9月21日土曜日
GOAL
Business
Success
Domain Specific Knowledge
Data Mining Skill
2813年9月21日土曜日
Ans. Visualization
2913年9月21日土曜日
GOAL
Business
Success
Domain Specific Knowledge
Data Mining Skill
Trends
five-number
summary
Co-occurence
Mosaic map
Flow chart
Parallel chart
3013年9月21日土曜日
3113年9月21日土曜日
Domain Specific Expert
Data Mining Engineer
3213年9月21日土曜日
It looks like
communication
to your data and
your collaborators
3313年9月21日土曜日
Exploratory Visualization
for Exploratory Data Analysis
do before model processing or
fitting, testing
with Domain specific knowledge
3413年9月21日土曜日
How to communicate ?
R
S
S-Plus
SYSTAT
SPSS
Pands
3513年9月21日土曜日
We have Perl !!
3613年9月21日土曜日
Perl Data Language
3713年9月21日土曜日
Perl Data Language
standard Perl the ability to compactly store and
speedily manipulate the large N-dimensional
data arrays which are the bread and butter of
scientific computing.
PDL turns Perl into a free, array-oriented,
numerical language similar to (but, we believe,
better than) such commercial packages as IDL
and MatLab. One can write simple perl
3813年9月21日土曜日
Perl Data Language
standard Perl the ability to compactly store and
speedily manipulate the large N-dimensional
data arrays which are the bread and butter of
scientific computing.
PDL turns Perl into a free, array-oriented,
numerical language similar to (but, we believe,
better than) such commercial packages as IDL
and MatLab. One can write simple perl
3913年9月21日土曜日
Perl Data Language
standard Perl the ability to compactly store and
speedily manipulate the large N-dimensional
data arrays which are the bread and butter of
scientific computing.
PDL turns Perl into a free, array-oriented,
numerical language similar to (but, we believe,
better than) such commercial packages as IDL
and MatLab. One can write simple perl
We want
Hash Object
4013年9月21日土曜日
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
use PDL;
 
my $obj;
$obj = pdl([[1,2,3],[4,5,6]]);
print $obj;
 
# [
# [1 2 3]
# [4 5 6]
# ]
 
$obj = pdl([{a => 1, b => 2, c => 3}, {a => 4, b => 5, c => 6}]);
# Hash given as a pdl - but not {PDL} key! at Basic/Core/
Core.pm.PL (i.e. PDL::Core.pm) line 1292.
# 工エェ(´Д`)ェエ工
4113年9月21日土曜日
4213年9月21日土曜日
Data::Cube
is an array of multi-dimensional data
has OLAP methods: dice, slice, etc.
4313年9月21日土曜日
Slice Rotate
Dice
Drill-down
4413年9月21日土曜日
4513年9月21日土曜日
4613年9月21日土曜日
4713年9月21日土曜日
え・・・ 4813年9月21日土曜日
Data::Cube released!
processing Array of Hash Object
add / remove rollup measure
add / remove dimension
add / remove hierarchy
4913年9月21日土曜日
Data::Cube 1. Data
Date Country SalesPerson Product Units Unit_Cost Total
3/15/2005 US Sorvino Pencil 56 2.99 167.44
3/7/2006 US Sorvino Binder 7 19.99 139.93
8/24/2006 US Sorvino Desk 3 275.00 825.00
9/27/2006 US Sorvino Pen 76 1.99 151.24
5/22/2005 US Thompson Pencil 32 1.99 63.68
10/14/2006 US Thompson Binder 57 19.99 1139.43
4/18/2005 US Andrews Pencil 75 1.99 149.25
4/10/2006 US Andrews Pencil 66 1.99 131.34
10/31/2006 US Andrews Pencil 114 1.29 147.06
5013年9月21日土曜日
Data::Cube 2. Usage
my $file = shift;
my $data = Text::CSV::Slurp->load(file => $file);
my $cube;
 
say "============================================================";
say "raw data size: ".(scalar @$data)."n";
 
say "n============================================================";
$cube = new Data::Cube("experience");
$cube->put($data);
say Dumper $cube->rollup(noValues => 1);
 
say "n============================================================";
$cube->add_dimension("skill");
say Dumper $cube->rollup(noValues => 1);
5113年9月21日土曜日
Data::Cube 2. Usage
my $file = shift;
my $data = Text::CSV::Slurp->load(file => $file);
my $cube;
 
say "============================================================";
say "raw data size: ".(scalar @$data)."n";
 
say "n============================================================";
$cube = new Data::Cube("experience");
$cube->put($data);
say Dumper $cube->rollup(noValues => 1);
 
say "n============================================================";
$cube->add_dimension("skill");
say Dumper $cube->rollup(noValues => 1);
たったのこれだけ
5213年9月21日土曜日
Data::Cube 3. Results
$VAR1 = [
{ 'count' => 150, 'dim' => 10年以上 },
{ 'count' => 76, 'dim' => 1~3年 },
{ 'count' => 32, 'dim' => 1年未満 },
{ 'count' => 93, 'dim' => 4~6年 },
{ 'count' => 43, 'dim' => 7~9年 }
];
5313年9月21日土曜日
Data::Cube 4. Results$VAR1 = [
{
'dim' => 10年以上, 'values' => [
{ 'count' => 79, 'dim' => 上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう) },
{ 'count' => 71, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) }]},
{
'dim' => 1~3年, 'values' => [
{ 'count' => 8, 'dim' => 上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう) },
{ 'count' => 56, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) },
{ 'count' => 12, 'dim' => 初級者(人に聞いたりしないとなかなか書けない) }]},
{
'dim' => 1年未満, 'values' => [
{ 'count' => 11, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) },
{ 'count' => 21, 'dim' => 初級者(人に聞いたりしないとなかなか書けない) }]},
{
'dim' => 4~6年, 'values' => [
{ 'count' => 25, 'dim' => 上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう) },
{ 'count' => 64, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) },
{ 'count' => 4, 'dim' => 初級者(人に聞いたりしないとなかなか書けない) }]},
{
'dim' => 7~9年, 'values' => [
{ 'count' => 19, 'dim' => 上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう) },
{ 'count' => 23, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) },
{ 'count' => 1, 'dim' => 初級者(人に聞いたりしないとなかなか書けない) }]}
];
5413年9月21日土曜日
Data::Cube 5. Measure
my $cube = new Data::Cube("Country");
$cube->put($data);
$cube->add_measure("sum", sub {
my $sum = 0;
foreach my $d (@_){ $sum += $d->{Units};}
$sum;});
$cube->add_measure("mean", sub {
my $sum = 0;
foreach my $d (@_){ $sum += $d->{Units};}
$sum / (scalar @_);});
print Dumper $cube->rollup(noValues => 1);
 
$cube->add_dimension("Product");
print Dumper $cube->rollup(noValues => 1);
5513年9月21日土曜日
Data::Cube 5. Measure
my $cube = new Data::Cube("Country");
$cube->put($data);
$cube->add_measure("sum", sub {
my $sum = 0;
foreach my $d (@_){ $sum += $d->{Units};}
$sum;});
$cube->add_measure("mean", sub {
my $sum = 0;
foreach my $d (@_){ $sum += $d->{Units};}
$sum / (scalar @_);});
print Dumper $cube->rollup(noValues => 1);
 
$cube->add_dimension("Product");
print Dumper $cube->rollup(noValues => 1);
たったのこれだけ
5613年9月21日土曜日
Data::Cube 6. Measure$VAR1 = [
{
'count' => 10,
'dim' => 'CA',
'sum' => 687,
'mean' => '68.7'
},
{
'count' => 11,
'dim' => 'UK',
'sum' => 764,
'mean' => '69.4545454545455'
},
{
'count' => 22,
'dim' => 'US',
'sum' => 1103,
'mean' => '50.1363636363636'
}
];
5713年9月21日土曜日
Data::Cube 7. Measure
$VAR1 = [
{
'values' => [
{ 'count' => 5, 'dim' => 'Binder', 'sum' => 288, 'mean' => '57.6'},
{ 'count' => 1, 'dim' => 'Pen', 'sum' => 51, 'mean' => 51},
{ 'count' => 1, 'dim' => 'PenSet', 'sum' => 61, 'mean' => 61},
{ 'count' => 3, 'dim' => 'Pencil', 'sum' => 287, 'mean' => '95.6666666666667'}
],
'dim' => 'CA'
},
{
'values' => [
{ 'count' => 4, 'dim' => 'Binder', 'sum' => 242, 'mean' => '60.5'},
{ 'count' => 1, 'dim' => 'Pen', 'sum' => 12, 'mean' => 12},
{ 'count' => 3, 'dim' => 'PenSet', 'sum' => 205, 'mean' => '68.3333333333333'},
{ 'count' => 3, 'dim' => 'Pencil', 'sum' => 305, 'mean' => '101.666666666667'}
],
'dim' => 'UK'
},
5813年9月21日土曜日
to Visualization
$cube -> HASH ref -> JSON
JSON -> d3.js -> visualization
5913年9月21日土曜日
Summary
6013年9月21日土曜日
Summary
せっかく紹介しまし
たが、僕はこの手の
処理はRでやります
6113年9月21日土曜日
> data = read.csv("./data/perl5census2013.csv")
> summary(data)
address experience
関東地方 :292 1~3年 : 76
近畿地方 : 39 10年以上:150
中部地方 : 23 1年未満 : 32
九州地方・沖縄: 17 4~6年 : 93
北海道地方 : 12 7~9年 : 43
東北地方 : 6
(Other) : 5
skill
初級者(人に聞いたりしないとなかなか書けない) : 38
上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう):131
中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) :225
frequencyatbusiness frequencyatprivate
Min. : 1.000 Min. : 1.000
1st Qu.: 2.000 1st Qu.: 2.000
Median : 6.000 Median : 5.000
Mean : 5.779 Mean : 5.388
3rd Qu.:10.000 3rd Qu.: 8.000
Max. :10.000 Max. :10.000
versionmanager
システム Perl  (rpm, yum, インストール済みのperl等) :136
システム Perl  (rpm, yum, インストール済みのperl等), perlbrew : 92
perlbrew : 76
システム Perl  (rpm, yum, インストール済みのperl等), perlbrew, plenv: 14
perlbrew, plenv : 12
plenv : 9
(Other) : 55
2行6213年9月21日土曜日
Summary: but
継続的な可視化を
専門家に見せるとき
圧倒的な優位性!
6313年9月21日土曜日
Summary: Example
Time Series
sales, repeat rate, DAU, system info, activities
Effects of trial / campaign
attribution, condition, cost, cash back, etc.
6413年9月21日土曜日

More Related Content

PDF
Gtug girls-20140828
PDF
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
PDF
バッテリー監視のためにバックグラウンドタスクについて調べたらなくなってたから泣く泣くタイマーApiを使ってみた話
PDF
Reading Self-descriptive FizzBuzz
PDF
AngularJSでデータビジュアライゼーションがしたい
PDF
R入門とgoogle map +α
PDF
20170923 excelユーザーのためのr入門
PDF
Haskell勉強会 14.1〜14.3 の説明資料
Gtug girls-20140828
AngularJSとD3.jsによるインタラクティブデータビジュアライゼーション
バッテリー監視のためにバックグラウンドタスクについて調べたらなくなってたから泣く泣くタイマーApiを使ってみた話
Reading Self-descriptive FizzBuzz
AngularJSでデータビジュアライゼーションがしたい
R入門とgoogle map +α
20170923 excelユーザーのためのr入門
Haskell勉強会 14.1〜14.3 の説明資料

What's hot (19)

PDF
MySQL勉強会 インデックス編.2013 08-02
PDF
Heroku Postgres
PDF
D3.js と SVG によるデータビジュアライゼーション
PDF
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
PPTX
[機械学習]文章のクラス分類
PPTX
Python for Data Analysis: Chapter 2
PDF
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 4
PPTX
Apache Drill で日本語を扱ってみよう + オープンデータ解析
PPTX
Ruby on Rails on MySQL チューニング入門
PDF
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
PPTX
BPStudy32 CouchDB 再入門
PDF
[東京] JapanSharePointGroup 勉強会 #2
PDF
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
PDF
PostgreSQL:行数推定を読み解く
PDF
20150530 pgunconf-pgbench-semi-structured-benchmark
PPTX
Play2 scalaを2年やって学んだこと
PDF
第9回 大規模データを用いたデータフレーム操作実習(3)
KEY
はじめてのCouch db
PPTX
機械学習
MySQL勉強会 インデックス編.2013 08-02
Heroku Postgres
D3.js と SVG によるデータビジュアライゼーション
EucalyptusのHadoopクラスタとJaqlでBasket解析をしてHiveとの違いを味わってみました
[機械学習]文章のクラス分類
Python for Data Analysis: Chapter 2
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 4
Apache Drill で日本語を扱ってみよう + オープンデータ解析
Ruby on Rails on MySQL チューニング入門
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
BPStudy32 CouchDB 再入門
[東京] JapanSharePointGroup 勉強会 #2
Deep Learningと他の分類器をRで比べてみよう in Japan.R 2014
PostgreSQL:行数推定を読み解く
20150530 pgunconf-pgbench-semi-structured-benchmark
Play2 scalaを2年やって学んだこと
第9回 大規模データを用いたデータフレーム操作実習(3)
はじめてのCouch db
機械学習
Ad

Viewers also liked (17)

PDF
20151030 ux sketch vol5
PDF
20150726 IoTってなに?ニフティクラウドmqttでやったこと
PDF
neural network introduction yapc asia tokyo
PDF
BigData Analysis with mongo-hadoop
PDF
My best grunt
PDF
ParamTuner 東京Node学園#8
PDF
オレオレMultipleInputを作る方法
PDF
Time Series Analysis by JavaScript LL matsuri 2013
PDF
MongoDBとHadoopの蜜月関係
PDF
Jubatus casulatalks2
PDF
Io t縛りの勉強会 #4
PDF
Html5j data visualization_and_d3
PPT
企業と勉強会 @nifty エンジニアサポート
PDF
20150803 baas meetup
PDF
データ可視化勉強会
ODP
ビジネスインテリジェンス入門~OSSでBIを始めよう~
PDF
Open Source ETL vs Commercial ETL
20151030 ux sketch vol5
20150726 IoTってなに?ニフティクラウドmqttでやったこと
neural network introduction yapc asia tokyo
BigData Analysis with mongo-hadoop
My best grunt
ParamTuner 東京Node学園#8
オレオレMultipleInputを作る方法
Time Series Analysis by JavaScript LL matsuri 2013
MongoDBとHadoopの蜜月関係
Jubatus casulatalks2
Io t縛りの勉強会 #4
Html5j data visualization_and_d3
企業と勉強会 @nifty エンジニアサポート
20150803 baas meetup
データ可視化勉強会
ビジネスインテリジェンス入門~OSSでBIを始めよう~
Open Source ETL vs Commercial ETL
Ad

Perl for visualization

  • 2. print Dumper $me { twitter => “@muddydixon”, organization => “NIFTY”, job => “low spec full stack engineer”, skill => [ “data collecting”, “data cleansing”, “visualization”, ] } 213年9月21日土曜日
  • 5. Key of Visualization STORIES are main concept of visualization are buried in data enhance your business 513年9月21日土曜日
  • 7. Explanatory visualization communicating information clearly and effectively 713年9月21日土曜日
  • 13. 加齢による 技術向上 The more use, the higher skill 1313年9月21日土曜日
  • 15. ひとりで できない 10年選手は いなかったEverybody who touch perl 10 years use perl :) 1513年9月21日土曜日
  • 17. 7-9年目に がんばろう 7-10 years users practice more! 1713年9月21日土曜日
  • 19. ここから 読み取る のはムリ We cannot find STORIES from text log 1913年9月21日土曜日
  • 20. This is the POWER of Explanatory visualization 2013年9月21日土曜日
  • 21. I / You can inform STORIES in data to my / your colleague to my / your boss to my / your audiences 2113年9月21日土曜日
  • 22. Exploratory visualization Visualization allow you to find STORIES from data Data Mining 2213年9月21日土曜日
  • 24. Problems Data Mining Engineer a few domain specific knowledge Domain Specialist a few mining skill 2413年9月21日土曜日
  • 25. GOAL Business Success Domain Specific Knowledge Data Mining Skill 2513年9月21日土曜日
  • 26. How to apply Domain Specific Knowledge to Data Mining Processes 2613年9月21日土曜日
  • 27. What is Glue between two? What is Ladder to Goal? 2713年9月21日土曜日
  • 28. GOAL Business Success Domain Specific Knowledge Data Mining Skill 2813年9月21日土曜日
  • 30. GOAL Business Success Domain Specific Knowledge Data Mining Skill Trends five-number summary Co-occurence Mosaic map Flow chart Parallel chart 3013年9月21日土曜日
  • 32. Domain Specific Expert Data Mining Engineer 3213年9月21日土曜日
  • 33. It looks like communication to your data and your collaborators 3313年9月21日土曜日
  • 34. Exploratory Visualization for Exploratory Data Analysis do before model processing or fitting, testing with Domain specific knowledge 3413年9月21日土曜日
  • 35. How to communicate ? R S S-Plus SYSTAT SPSS Pands 3513年9月21日土曜日
  • 36. We have Perl !! 3613年9月21日土曜日
  • 38. Perl Data Language standard Perl the ability to compactly store and speedily manipulate the large N-dimensional data arrays which are the bread and butter of scientific computing. PDL turns Perl into a free, array-oriented, numerical language similar to (but, we believe, better than) such commercial packages as IDL and MatLab. One can write simple perl 3813年9月21日土曜日
  • 39. Perl Data Language standard Perl the ability to compactly store and speedily manipulate the large N-dimensional data arrays which are the bread and butter of scientific computing. PDL turns Perl into a free, array-oriented, numerical language similar to (but, we believe, better than) such commercial packages as IDL and MatLab. One can write simple perl 3913年9月21日土曜日
  • 40. Perl Data Language standard Perl the ability to compactly store and speedily manipulate the large N-dimensional data arrays which are the bread and butter of scientific computing. PDL turns Perl into a free, array-oriented, numerical language similar to (but, we believe, better than) such commercial packages as IDL and MatLab. One can write simple perl We want Hash Object 4013年9月21日土曜日
  • 41. #!/usr/bin/env perl use strict; use warnings; use Data::Dumper; use PDL;   my $obj; $obj = pdl([[1,2,3],[4,5,6]]); print $obj;   # [ # [1 2 3] # [4 5 6] # ]   $obj = pdl([{a => 1, b => 2, c => 3}, {a => 4, b => 5, c => 6}]); # Hash given as a pdl - but not {PDL} key! at Basic/Core/ Core.pm.PL (i.e. PDL::Core.pm) line 1292. # 工エェ(´Д`)ェエ工 4113年9月21日土曜日
  • 43. Data::Cube is an array of multi-dimensional data has OLAP methods: dice, slice, etc. 4313年9月21日土曜日
  • 49. Data::Cube released! processing Array of Hash Object add / remove rollup measure add / remove dimension add / remove hierarchy 4913年9月21日土曜日
  • 50. Data::Cube 1. Data Date Country SalesPerson Product Units Unit_Cost Total 3/15/2005 US Sorvino Pencil 56 2.99 167.44 3/7/2006 US Sorvino Binder 7 19.99 139.93 8/24/2006 US Sorvino Desk 3 275.00 825.00 9/27/2006 US Sorvino Pen 76 1.99 151.24 5/22/2005 US Thompson Pencil 32 1.99 63.68 10/14/2006 US Thompson Binder 57 19.99 1139.43 4/18/2005 US Andrews Pencil 75 1.99 149.25 4/10/2006 US Andrews Pencil 66 1.99 131.34 10/31/2006 US Andrews Pencil 114 1.29 147.06 5013年9月21日土曜日
  • 51. Data::Cube 2. Usage my $file = shift; my $data = Text::CSV::Slurp->load(file => $file); my $cube;   say "============================================================"; say "raw data size: ".(scalar @$data)."n";   say "n============================================================"; $cube = new Data::Cube("experience"); $cube->put($data); say Dumper $cube->rollup(noValues => 1);   say "n============================================================"; $cube->add_dimension("skill"); say Dumper $cube->rollup(noValues => 1); 5113年9月21日土曜日
  • 52. Data::Cube 2. Usage my $file = shift; my $data = Text::CSV::Slurp->load(file => $file); my $cube;   say "============================================================"; say "raw data size: ".(scalar @$data)."n";   say "n============================================================"; $cube = new Data::Cube("experience"); $cube->put($data); say Dumper $cube->rollup(noValues => 1);   say "n============================================================"; $cube->add_dimension("skill"); say Dumper $cube->rollup(noValues => 1); たったのこれだけ 5213年9月21日土曜日
  • 53. Data::Cube 3. Results $VAR1 = [ { 'count' => 150, 'dim' => 10年以上 }, { 'count' => 76, 'dim' => 1~3年 }, { 'count' => 32, 'dim' => 1年未満 }, { 'count' => 93, 'dim' => 4~6年 }, { 'count' => 43, 'dim' => 7~9年 } ]; 5313年9月21日土曜日
  • 54. Data::Cube 4. Results$VAR1 = [ { 'dim' => 10年以上, 'values' => [ { 'count' => 79, 'dim' => 上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう) }, { 'count' => 71, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) }]}, { 'dim' => 1~3年, 'values' => [ { 'count' => 8, 'dim' => 上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう) }, { 'count' => 56, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) }, { 'count' => 12, 'dim' => 初級者(人に聞いたりしないとなかなか書けない) }]}, { 'dim' => 1年未満, 'values' => [ { 'count' => 11, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) }, { 'count' => 21, 'dim' => 初級者(人に聞いたりしないとなかなか書けない) }]}, { 'dim' => 4~6年, 'values' => [ { 'count' => 25, 'dim' => 上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう) }, { 'count' => 64, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) }, { 'count' => 4, 'dim' => 初級者(人に聞いたりしないとなかなか書けない) }]}, { 'dim' => 7~9年, 'values' => [ { 'count' => 19, 'dim' => 上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう) }, { 'count' => 23, 'dim' => 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) }, { 'count' => 1, 'dim' => 初級者(人に聞いたりしないとなかなか書けない) }]} ]; 5413年9月21日土曜日
  • 55. Data::Cube 5. Measure my $cube = new Data::Cube("Country"); $cube->put($data); $cube->add_measure("sum", sub { my $sum = 0; foreach my $d (@_){ $sum += $d->{Units};} $sum;}); $cube->add_measure("mean", sub { my $sum = 0; foreach my $d (@_){ $sum += $d->{Units};} $sum / (scalar @_);}); print Dumper $cube->rollup(noValues => 1);   $cube->add_dimension("Product"); print Dumper $cube->rollup(noValues => 1); 5513年9月21日土曜日
  • 56. Data::Cube 5. Measure my $cube = new Data::Cube("Country"); $cube->put($data); $cube->add_measure("sum", sub { my $sum = 0; foreach my $d (@_){ $sum += $d->{Units};} $sum;}); $cube->add_measure("mean", sub { my $sum = 0; foreach my $d (@_){ $sum += $d->{Units};} $sum / (scalar @_);}); print Dumper $cube->rollup(noValues => 1);   $cube->add_dimension("Product"); print Dumper $cube->rollup(noValues => 1); たったのこれだけ 5613年9月21日土曜日
  • 57. Data::Cube 6. Measure$VAR1 = [ { 'count' => 10, 'dim' => 'CA', 'sum' => 687, 'mean' => '68.7' }, { 'count' => 11, 'dim' => 'UK', 'sum' => 764, 'mean' => '69.4545454545455' }, { 'count' => 22, 'dim' => 'US', 'sum' => 1103, 'mean' => '50.1363636363636' } ]; 5713年9月21日土曜日
  • 58. Data::Cube 7. Measure $VAR1 = [ { 'values' => [ { 'count' => 5, 'dim' => 'Binder', 'sum' => 288, 'mean' => '57.6'}, { 'count' => 1, 'dim' => 'Pen', 'sum' => 51, 'mean' => 51}, { 'count' => 1, 'dim' => 'PenSet', 'sum' => 61, 'mean' => 61}, { 'count' => 3, 'dim' => 'Pencil', 'sum' => 287, 'mean' => '95.6666666666667'} ], 'dim' => 'CA' }, { 'values' => [ { 'count' => 4, 'dim' => 'Binder', 'sum' => 242, 'mean' => '60.5'}, { 'count' => 1, 'dim' => 'Pen', 'sum' => 12, 'mean' => 12}, { 'count' => 3, 'dim' => 'PenSet', 'sum' => 205, 'mean' => '68.3333333333333'}, { 'count' => 3, 'dim' => 'Pencil', 'sum' => 305, 'mean' => '101.666666666667'} ], 'dim' => 'UK' }, 5813年9月21日土曜日
  • 59. to Visualization $cube -> HASH ref -> JSON JSON -> d3.js -> visualization 5913年9月21日土曜日
  • 62. > data = read.csv("./data/perl5census2013.csv") > summary(data) address experience 関東地方 :292 1~3年 : 76 近畿地方 : 39 10年以上:150 中部地方 : 23 1年未満 : 32 九州地方・沖縄: 17 4~6年 : 93 北海道地方 : 12 7~9年 : 43 東北地方 : 6 (Other) : 5 skill 初級者(人に聞いたりしないとなかなか書けない) : 38 上級者(一通り書こうと思えば書ける。わかんなかったらとりあえずソースコード読んじゃう):131 中級者(だいたいやりたいことはできるが、本やサイトを頼りにして確認したりする) :225 frequencyatbusiness frequencyatprivate Min. : 1.000 Min. : 1.000 1st Qu.: 2.000 1st Qu.: 2.000 Median : 6.000 Median : 5.000 Mean : 5.779 Mean : 5.388 3rd Qu.:10.000 3rd Qu.: 8.000 Max. :10.000 Max. :10.000 versionmanager システム Perl  (rpm, yum, インストール済みのperl等) :136 システム Perl  (rpm, yum, インストール済みのperl等), perlbrew : 92 perlbrew : 76 システム Perl  (rpm, yum, インストール済みのperl等), perlbrew, plenv: 14 perlbrew, plenv : 12 plenv : 9 (Other) : 55 2行6213年9月21日土曜日
  • 64. Summary: Example Time Series sales, repeat rate, DAU, system info, activities Effects of trial / campaign attribution, condition, cost, cash back, etc. 6413年9月21日土曜日