SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
lubridateパッケージで  
君も⽇日付処理理スタ☆
!
Tokyo.R#50  
2015-‐‑‒09-‐‑‒05  
@kashitan
lubridateパッケージ入門
• ⽇日付関連クラス振り返り  
• ⽇日付処理理の#Tsurami  
• lubridateパッケージの紹介
日付関連クラス振り返り
日付関連クラス振り返り
• ⽇日付  
• Date  
!
• 時刻  
• POSIXct(POSIX  calendar  time)  
• POSIXlt(POSIX  local  time)
Dateクラス
• 1970年年1⽉月1⽇日からの経過日数で表現
> # 1970年1月1日は0	
> as.Date("1970-01-01") %>%	
+   as.integer()	
[1] 0	
> 	
> # 2015年9月5日の3日後	
> as.Date("2015-09-05") + 3	
[1] "2015-09-08"	
> 	
> # 日付の差(difftime関数でも算出可)	
> (as.Date("2015-09-05") - as.Date("2015-09-01")) %>%	
+   as.integer()	
[1] 4
POSIXctクラス
• 1970年年1⽉月1⽇日0時0分0秒からの経過
秒数で表現
> # 1970年1月1日0時0分0秒は0	
> as.POSIXct("1970-01-01 00:00:00", tz="UTC") %>%	
+   as.integer()	
[1] 0	
> 	
> # 2015年9月5日の3時間後	
> as.POSIXct("2015-09-05 12:34:56", tz="Japan") + 3 * 60 * 60	
[1] "2015-09-05 15:34:56 JST"
POSIXltクラス
• ⽇日付時刻要素のリストで表現
> today <- as.POSIXlt("2015-09-05 12:34:56", tz="Japan")	
> unclass(today)	
$sec	
[1] 56	
$min	
[1] 34	
$hour	
[1] 12	
...	
> 	
> # 要素にはラベルでアクセス	
> today$hour	
[1] 12
日付処理の#Tsurami
日付処理の#Tsurami
• formatパラメータの指定  
• 直感的でないPOSIXlt  
• 既存オブジェクトの変更更
formatパラメータの指定
• “yyyy-‐‑‒mm-‐‑‒dd”,  “yyyy/mm/dd”以外
formatパラメータが必要
> as.Date("20150905")	
 以下にエラー charToDate(x) : 	
   文字列は標準的な曖昧さのない書式にはなっていません 	
> 	
> as.Date("20150905", format="%Y%m%d")	
[1] "2015-09-05"	
> 	
> as.POSIXlt("20150905123456", format="%Y%m%d%H%M%S")	
[1] "2015-09-05 12:34:56 JST"
%mと%M、いつも迷う
直感的でないPOSIXlt
• $year,  $monは注意が必要
> today <- as.POSIXlt("2015-09-05")	
> # $yearは1900年からの経過年	
> today$year	
[1] 115	
> 	
> # $monは0-11	
> today$mon	
[1] 8	
>	
> as.POSIXlt("2016-01-01")$mon	
[1] 0
1900を足す必要がある
1を足す必要がある
既存オブジェクトの変更
• 固定値で変更更するのにformatパラ(ry
> # 翌月や30日後などは簡単	
> d <- as.Date(c("2015-01-01", "2015-02-02"))	
> d + months(1)	
[1] "2015-02-01" "2015-03-02"	
> d + days(30)	
[1] "2015-01-31" "2015-03-04"	
> 	
> # 固定で変更するのは大変	
> d <- as.Date(format(d, format="%Y-09-%d"))	
> d	
[1] "2015-09-01" "2015-09-02"
What s lubridate?
• Date, POSIXtオブジェクトを直感的に
扱えるパッケージ
• 神Hadley製
What s lubridate?
• Dateオブジェクトを直感的に扱える
パッケージ
P.32
“Hadley Wickham, an author of several popular R
packages, has often made use of this data set in illustrating
data manipulation in R.”
↑
異教徒からも言及されるくらい神
日付処理の#Tsurami
• formatパラメータの指定  
• 直感的でないPOSIXlt  
• 既存オブジェクトの変更更
解決
formatパラメータの指定
• ymd(),  mdy(),dmy()などでformat
指定が不不要
> library(lubridate)	
!
> ymd("2015-09-05")	
[1] "2015-09-05 UTC"	
> ymd("20150905")	
[1] "2015-09-05 UTC"	
!
> mdy("Sep-05-2015", locale="C")	
[1] "2015-09-05 UTC"	
> 	
> dmy("05/09/15")	
[1] "2015-09-05 UTC"
formatパラメータの指定
• ymd(),  mdy(),dmy()などでformat
指定が不不要
> library(lubridate)	
!
> ymd("2015-09-05")	
[1] "2015-09-05 UTC"	
> ymd("20150905")	
[1] "2015-09-05 UTC"	
!
> mdy("Sep-05-2015", locale="C")	
[1] "2015-09-05 UTC"	
> 	
> dmy("05/09/15")	
[1] "2015-09-05 UTC"
環境によってはlocale= C が必要
formatパラメータの指定
• ymd_̲hms(),  mdy_̲hms()などで
POSIXtも対応
> ymd_hms("20150905123456")	
[1] "2015-09-05 12:34:56 UTC"	
!
> options(digits.secs=3)	
> ymd_hms("2015-09-05 12:34:56.789")	
[1] "2015-09-05 12:34:56.789 UTC"	
!
> mdy_hms("Sep-05-2015 12:34:56.789", locale="C")	
[1] "2015-09-05 12:34:56.789 UTC"
formatパラメータの指定
• ⽇日付を含む⽂文字列列であればいい感じに
解析してくれる
> # creating heterogeneous date object	
> hetero_date <- c("second chapter due on 2013, august, 24",  	
+                  "first chapter submitted on 2013, 08, 18", 	
+                  "2013 aug 23")	
!
> # parsing the character date object and convert to valid date	
> ymd(hetero_date, locale="C")	
[1] "2013-08-24 UTC" "2013-08-18 UTC" "2013-08-23 UTC"
直感的でないPOSIXlt
• year(),month()などで直感的に取得
> # 現在時刻の取得	
> ct <- now()	
> ct	
[1] "2015-09-05 01:20:26.254 JST"	
!
> # 年	
> year(ct)	
[1] 2015	
!
> # 月(label=TRUEで略称)	
> month(ct)	
[1] 9
直感的でないPOSIXlt
• year(),month()などで直感的に取得
> # 日(day or mday)	
> day(ct)	
[1] 5	
> # 曜日	
> wday(ct)	
[1] 7	
> # 週	
> week(ct)	
[1] 36	
> # 年間通算日	
> yday(ct)	
[1] 248
直感的でないPOSIXlt
• year(),month()などで直感的に取得
> # 時	
> hour(ct)	
[1] 1	
> # 分	
> minute(ct)	
[1] 20	
> # 秒	
> second(ct)	
[1] 26.25421
既存オブジェクトの変更
• year(),month()などで変更更も可能
> d <- ymd(c("2015-01-01", "2015-02-02"))	
> d	
[1] "2015-01-01 UTC" "2015-02-02 UTC”	
!
> # 月を9月に変更	
> month(d) <- 9	
!
> d	
[1] "2015-09-01 UTC" "2015-09-02 UTC”	
!
> # 2016年に変更	
> year(d) <- 2016	
> d	
[1] "2016-09-01 UTC" "2016-09-02 UTC"
その他便利?関数
• with_̲tz()  
!
• leap_̲year()
> # ニューヨークの現在日時	
> with_tz(now(), "America/New_York")	
[1] "2015-09-04 13:04:21.272 EDT”	
> # うるう年の判定	
> d <- ymd(c("2015-01-01", "2016/01/01", "20170101"))	
> d	
[1] "2015-01-01 UTC" "2016-01-01 UTC" "2017-01-01 UTC"	
!
> leap_year(d)	
[1] FALSE  TRUE FALSE
まとめ
lubridateパッケージを使うと
日付処理が る!!
lubridateパッケージ入門

Weitere ähnliche Inhalte

Andere mochten auch

1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
1000人規模で使う分析基盤構築  〜redshiftを活用したeuc1000人規模で使う分析基盤構築  〜redshiftを活用したeuc
1000人規模で使う分析基盤構築 〜redshiftを活用したeucKazuhiro Miyajima
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905Nobuaki Oshiro
 
「Japan.R開催のお知らせ 」と 「Rでワンライナー」
「Japan.R開催のお知らせ」と「Rでワンライナー」「Japan.R開催のお知らせ」と「Rでワンライナー」
「Japan.R開催のお知らせ 」と 「Rでワンライナー」Atsushi Hayakawa
 
IBM Watson Visual Recognition を紹介するよ
IBM Watson Visual Recognition を紹介するよIBM Watson Visual Recognition を紹介するよ
IBM Watson Visual Recognition を紹介するよTohru Kobayashi
 
押してダメなら引いてみろ! ggplot2逆引きプロジェクト
押してダメなら引いてみろ! ggplot2逆引きプロジェクト押してダメなら引いてみろ! ggplot2逆引きプロジェクト
押してダメなら引いてみろ! ggplot2逆引きプロジェクトyutannihilation
 
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてHiroshi Shimizu
 
HiRoshima.R#6 by imuyaoti
 HiRoshima.R#6 by imuyaoti HiRoshima.R#6 by imuyaoti
HiRoshima.R#6 by imuyaotiimuyaoti
 
Nagoya.R #12 非線形の相関関係を検出する指標の算出
Nagoya.R #12 非線形の相関関係を検出する指標の算出Nagoya.R #12 非線形の相関関係を検出する指標の算出
Nagoya.R #12 非線形の相関関係を検出する指標の算出Yusaku Kawaguchi
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Shintaro Fukushima
 
経験過程
経験過程経験過程
経験過程hoxo_m
 
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなシンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなhoxo_m
 
21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)Toru Imai
 
確率論基礎
確率論基礎確率論基礎
確率論基礎hoxo_m
 
R stan導入公開版
R stan導入公開版R stan導入公開版
R stan導入公開版考司 小杉
 

Andere mochten auch (20)

1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
1000人規模で使う分析基盤構築  〜redshiftを活用したeuc1000人規模で使う分析基盤構築  〜redshiftを活用したeuc
1000人規模で使う分析基盤構築 〜redshiftを活用したeuc
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
「Japan.R開催のお知らせ 」と 「Rでワンライナー」
「Japan.R開催のお知らせ」と「Rでワンライナー」「Japan.R開催のお知らせ」と「Rでワンライナー」
「Japan.R開催のお知らせ 」と 「Rでワンライナー」
 
IBM Watson Visual Recognition を紹介するよ
IBM Watson Visual Recognition を紹介するよIBM Watson Visual Recognition を紹介するよ
IBM Watson Visual Recognition を紹介するよ
 
Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
押してダメなら引いてみろ! ggplot2逆引きプロジェクト
押してダメなら引いてみろ! ggplot2逆引きプロジェクト押してダメなら引いてみろ! ggplot2逆引きプロジェクト
押してダメなら引いてみろ! ggplot2逆引きプロジェクト
 
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについてエクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについて
 
Rのハラワタ
RのハラワタRのハラワタ
Rのハラワタ
 
HiRoshima.R#6 by imuyaoti
 HiRoshima.R#6 by imuyaoti HiRoshima.R#6 by imuyaoti
HiRoshima.R#6 by imuyaoti
 
Nagoya.R #12 非線形の相関関係を検出する指標の算出
Nagoya.R #12 非線形の相関関係を検出する指標の算出Nagoya.R #12 非線形の相関関係を検出する指標の算出
Nagoya.R #12 非線形の相関関係を検出する指標の算出
 
Osaka.stan#2 chap5-1
Osaka.stan#2 chap5-1Osaka.stan#2 chap5-1
Osaka.stan#2 chap5-1
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
 
Tokyo r49 beginner
Tokyo r49 beginnerTokyo r49 beginner
Tokyo r49 beginner
 
MICの解説
MICの解説MICの解説
MICの解説
 
経験過程
経験過程経験過程
経験過程
 
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなシンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るな
 
21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)
 
確率論基礎
確率論基礎確率論基礎
確率論基礎
 
R stan導入公開版
R stan導入公開版R stan導入公開版
R stan導入公開版
 
Stan超初心者入門
Stan超初心者入門Stan超初心者入門
Stan超初心者入門
 

Mehr von Takashi Kitano

好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜Takashi Kitano
 
{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発Tips{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発TipsTakashi Kitano
 
令和から本気出す
令和から本気出す令和から本気出す
令和から本気出すTakashi Kitano
 
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver){tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)Takashi Kitano
 
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析{tidytext}と{RMeCab}によるモダンな日本語テキスト分析
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析Takashi Kitano
 
{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析Takashi Kitano
 
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門Takashi Kitano
 
mxnetで頑張る深層学習
mxnetで頑張る深層学習mxnetで頑張る深層学習
mxnetで頑張る深層学習Takashi Kitano
 
可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜Takashi Kitano
 
Rによるウイスキー分析
Rによるウイスキー分析Rによるウイスキー分析
Rによるウイスキー分析Takashi Kitano
 
20160311 基礎からのベイズ統計学輪読会第6章 公開ver
20160311 基礎からのベイズ統計学輪読会第6章 公開ver20160311 基礎からのベイズ統計学輪読会第6章 公開ver
20160311 基礎からのベイズ統計学輪読会第6章 公開verTakashi Kitano
 
20140625 rでのデータ分析(仮) for_tokyor
20140625 rでのデータ分析(仮) for_tokyor20140625 rでのデータ分析(仮) for_tokyor
20140625 rでのデータ分析(仮) for_tokyorTakashi Kitano
 
Google's r style guideのすゝめ
Google's r style guideのすゝめGoogle's r style guideのすゝめ
Google's r style guideのすゝめTakashi Kitano
 

Mehr von Takashi Kitano (15)

好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
好みの日本酒を呑みたい! 〜さけのわデータで探す自分好みの酒〜
 
{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発Tips{shiny}と{leaflet}による地図アプリ開発Tips
{shiny}と{leaflet}による地図アプリ開発Tips
 
令和から本気出す
令和から本気出す令和から本気出す
令和から本気出す
 
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver){tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)
{tidygraph}と{ggraph}による モダンなネットワーク分析(未公開ver)
 
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析{tidytext}と{RMeCab}によるモダンな日本語テキスト分析
{tidytext}と{RMeCab}によるモダンな日本語テキスト分析
 
{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析{tidygraph}と{ggraph}によるモダンなネットワーク分析
{tidygraph}と{ggraph}によるモダンなネットワーク分析
 
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
 
mxnetで頑張る深層学習
mxnetで頑張る深層学習mxnetで頑張る深層学習
mxnetで頑張る深層学習
 
可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜可視化周辺の進化がヤヴァイ 〜2016〜
可視化周辺の進化がヤヴァイ 〜2016〜
 
Rによるウイスキー分析
Rによるウイスキー分析Rによるウイスキー分析
Rによるウイスキー分析
 
20160311 基礎からのベイズ統計学輪読会第6章 公開ver
20160311 基礎からのベイズ統計学輪読会第6章 公開ver20160311 基礎からのベイズ統計学輪読会第6章 公開ver
20160311 基礎からのベイズ統計学輪読会第6章 公開ver
 
20140625 rでのデータ分析(仮) for_tokyor
20140625 rでのデータ分析(仮) for_tokyor20140625 rでのデータ分析(仮) for_tokyor
20140625 rでのデータ分析(仮) for_tokyor
 
20150329 tokyo r47
20150329 tokyo r4720150329 tokyo r47
20150329 tokyo r47
 
20140920 tokyo r43
20140920 tokyo r4320140920 tokyo r43
20140920 tokyo r43
 
Google's r style guideのすゝめ
Google's r style guideのすゝめGoogle's r style guideのすゝめ
Google's r style guideのすゝめ
 

lubridateパッケージ入門