Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
tidyverse tutorial 1
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kur0cky
September 20, 2019
Programming
91
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
tidyverse tutorial 1
tidyverse 超入門
講義用
kur0cky
September 20, 2019
More Decks by kur0cky
See All by kur0cky
The bootstrapping method for everyone
kur0cky
3
990
音楽理論と方向統計学の初歩/introduction of circular statistics and musicology
kur0cky
5
2.2k
NLP introduction in R 1
kur0cky
0
110
tidyverse tutorial 2
kur0cky
1
74
Other Decks in Programming
See All in Programming
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.3k
1年で人数1.5倍、PR数5.5倍増。 品質とアウトカムはどうなったか、 何が効いたか
ike002jp
0
140
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
160
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
610
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
180
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
270
AIエージェントで 変わるAndroid開発環境
takahirom
2
710
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
180
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
160
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
100
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1.1k
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
410
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Crafting Experiences
bethany
1
230
Facilitating Awesome Meetings
lara
57
7k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
280
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Evolving SEO for Evolving Search Engines
ryanjones
0
240
A designer walks into a library…
pauljervisheath
211
24k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
HDC tutorial
michielstock
2
750
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
470
Transcript
σʔλղੳͱલॲཧ .ࠇ༟ୋ !FEUVTBDKQ
࣍ σʔλղੳͱ 3ͱ34UVEJP 3ͷجຊ ϞμϯͳσʔλϑϨʔϜૢ࡞ !2
ຊ༻͢Δσʔλ TUBSXBST w ελʔΥʔζͷొਓʹؔ͢Δσʔλ IUUQTXBQJDP qJHIUT w ʹ-(" +',
&83Λग़ൃͨͯ͢͠ͷϑϥΠτͷఆࠁσʔλ XFBUIFS w -(" +', &83ͷఱީ෩ͷใ ࣌ؒ͝ͱ BJSMJOFT w ߤۭձࣾͷςʔϒϧ !3
σʔλղੳͱ
σʔλղੳͱ !5 6OEFSTUBOE *NQPSU 0VUQVU4IBSF
σʔλղੳͱ !6 *NQPSU 0VUQVU4IBSF 7JTVBMJ[F .PEFMMJOH *OUFSQSFU 5SBOTGPSN
5PPMT ͨ͘͞Μ͋Δ w ి w .JDSPTPGU&YDFM w *#.4144 w 4"4
w 1ZUIPO w 3 !7
5PPMT ͖ʹબྑ͍ w Έ ྲྀߦΓ څྉ ۙʹಘҙͳਓ͕͍Δ FUD !8 #JH%BUB
ػցֶश ౷ܭղੳ ϋϯυϦϯά 42- ˕ ✕ ✕ ˓ 3 ˚ ˓ ˕ ˕ 1ZUIPO ˚ ˕ ˓ ˓ &YDFM ✕ ✕ ✕ ✕ ి ✕ ✕ ✕ ✕
3ͱ34UVEJP
3 ಘҙͳͷͰ3Λհ͠·͢ w ΠϯλϓϦλݴޠ 㲗ίϯύΠϥݴޠ ॴ w 044 w
༷ʑͳ౷ܭղੳɾػցֶशϥΠϒϥϦ w 34UVEJPࣾͷଘࡏ ॴ w ͍ ෦͕$ ͳͲͰॻ͔Ε͍ͯΔͱ͍ !10
34UVEJPΛ͓͏ w 3ʹಛԽͨ͠౷߹։ൃڥ *%& w ΤσΟλͱͯ͠༏लͳ͚ͩͰͳ͘ ༷ʑͳ֦ுػೳ w ๛ͳγϣʔτΧοτ
w (JUͱͷ࿈ܞ w ແྉ !11
34UVEJPͷը໘ ΤσΟλ ίϯιʔϧ ΦϒδΣΫτ ཤྺͳͲ ϓϩοτ
ϔϧϓͳͲ !12 ᶃ ᶄ ᶅ ᶆ
ىಈ͠Α͏ w ىಈ w ͨ͠&YFSDJTF31SPKΛ্ཱͪ͛Δ w 3Λಈ͔ͯ͠ΈΑ͏ w ίϯιʔϧͰplot(iris) w
ύοέʔδΛΠϯετʔϧͯ͠ΈΑ͏ ͕͔͔࣌ؒΔͷͰҙ • install.packages(“tidyverse”) w εΫϦϓτΛ࡞ͬͯΈΑ͏ w 'JMF/FX'JMF34DSJQU !13
31SPKFDUͱ w ϓϩδΣΫτ୯ҐͰੳΛཧ͢Δ͘͠Έ w Ұ࿈ͷղੳͰඞཁʹͳΔϑΝΠϧ܈Λ·ͱΊͯѻ͏ w ࡞ۀσΟϨΫτϦ͕ͦ͜ʹͳΔ w ଞਓͱͷڞ༗͕͍͢͠ w
'JMF/FX1SPKFDUͰ࡞ !14
ڥΛઃఆ͠Α͏ w 5PPMT(MPCBM0QUJPOT͔Βڥઃఆ w (FOFSBMɿνΣοΫΛશͯ֎ͦ͏ w 3FTUPSFQSFWJPVTMZPQFOTPVSDFEPDVNFOUBUTUBSUVQ ͓͍ͯͯ͠ྑ͍ w $PEF4BWJOHɿΤϯίʔσΟϯάΛ65'ʹ
w "QQFBSBODFɿ͖ͳݟͨʹઃఆ͠Α͏ !15
3ͷجຊ
جຊ w GPSจ JGจ ؔ ͦͷଞʜ w ଞͷݴޠͱ͋·ΓมΘΒͳ͍ͷͰ ͻͭΑ͏ʹͳͬͨΒௐ ͍ͯͩ͘͞
w ྻͷࢀর͡·Γʂʂ !17
3Ͱͷσʔλܕ Ұͭͷ w -PHJDBM #PPMFBO w *OUFHFS w %PVCMF
w $PNQMFY w $IBSBDUFS w 'BDUPS w FUDʜ !18 ෳͷ w "UPNJD7FDUPS w .BUSJY w %BUB'SBNF w -JTU w FUDʜ
"UPNJD7FDUPS w ̍࣍ݩྻ w ཁૉશͯಉ͡ܕ શͯJOUFHFS શͯDIBSBDUFS ͳͲ w
ཁૉͷશͯΛ·ͱΊͯॲཧͰ͖Δʢ࢛ଇԋࢉͱ͔ʣ w c()Ͱ࡞Δ !19
"UPNJD7FDUPS !20 drink <- c(“beer”, “sake”, “whisky”) # ೖ drink
# ΦϒδΣΫτͷݺͼग़͠ price <- c(480, 700, 850) # ܕϕΫτϧ favorite <- c(TRUE, TRUE, TRUE) # ཧܕϕΫτϧ
.BUSJY w ̎࣍ݩྻ w ཁૉશͯಉ͡ܕ w ߦྻԋࢉ͕Ͱ͖Δʢੵͱ͔ʣ w ཁૉͷશͯΛ·ͱΊͯॲཧͰ͖Δʢ࢛ଇԋࢉͱ͔ʣ w
matrix()Ͱ࡞Δ !21
-JTU w ̍࣍ݩྻ w ཁૉͳΜͰ͍͍ 7FDUPSͷ֦ு w list()Ͱ࡞Δ w
ࣗ༝͕ΊͬͪΌߴ͍ !22
%BUB'SBNF ͓ͳ͡Έͷ࢛͍֯ςʔϒϧ • ֤ྻಉ͡͞ͷ Atomic vector w data.frame()Ͱ࡞Δ w data.frame(drink
= drink, price = price, favorite = favorite) w ༷ʑͳύοέʔδ͕%BUB'SBNFΛத৺ʹ࡞ΒΕ͍ͯΔ !23
%BUB'SBNFʹ৮Ζ͏ starwars <- read.csv("data/starwars.csv", stringsAsFactors = FALSE, fileEncoding = “UTF-8”)
head(starwars) # ઌ಄֬ೝ tail(starwars) # ඌ֬ೝ summary(starwars) # هड़౷ܭྔ str(starwars) # ֤ྻͷܕ֬ೝ !24
ϞμϯͳσʔλϑϨʔϜૢ࡞
ʮ5PPMʹਫ਼௨͢Δʯͱ͍͏͜ͱ ྉཧʹྫ͑Δͱ w แஸίϯϩΛ͑ΔΑ͏ʹͳΖ͏ w ϨγϐదٓݟΕΑ͍ ʮരͰσʔλΛѻ͑Δʯͱ͍͏͜ͱ w େͳࢼߦࡨޡΛ܁ΓฦͤΔ w
࣌ؒ༗ݶ ຊ࣭తͰͳ͍࡞ۀͬ͞͞ͱऴΘΒͤͯ ҿΈʹग़͔͚Α͏ݚڀ͠Α͏ !26
5JEZWFSTF ֓೦ w 3Ͱͷ༷ʑͳૢ࡞ *NQPSU &YQPSU 5SBOTGPSN 7JTVBMJ[BUJPO FUD ͕
౷ҰతͳΠϯλʔϑΣʔεͰग़དྷͨΒ ૉఢͩΑͶ ύοέʔδ w ্هΛ࣮ݱ͢ΔͨΊͷύοέʔδ܈ w install.packages(“tidyverse”) ͰΠϯετʔϧ w )BEMFZ8JDLIBN 34UVEJPࣾ ͕த৺ͱͳΓ։ൃ w ศར !27 ˞)BEMFZ8JDLIBN3քͷਆ
5JEZWFSTF !28
5JEZWFSTF !29 ಛʹ͜ΕΒ
library(tidyverse)
%BUB'SBNFͷجຊૢ࡞ EQMZS w ม ྻ ͷநग़ w ؍ଌ ߦ ͷநग़
w ؍ଌ ߦ ͷฒͼସ͑ w ৽ͨͳม ྻ ͷ࡞ w ूܭ w άϧʔϓԽ !31 • select() • filter() • arrange() • mutate() • summarise() • group_by()
͍ํ w ୈҾʹσʔλϑϨʔϜΛ༩͑Δ w ୈҾҎ߱Ͱྻ໊ΛΫΦʔςʔγϣϯແ͠Ͱ༩͑Δ w Γ৽ͨͳσʔλϑϨʔϜ !32
ͬͯΈΑ͏ select(starwars, name, gender, species) filter(starwars, species == "Human", height
<= 170) mutate(starwars, BMI = mass / (height/100)^2) arrange(starwars, gender, height) summarise(starwars, mean_mass = mean(mass, na.rm = TRUE), mean_height = mean(height, na.rm = TRUE)) grouped <- group_by(starwars, species) summarise(grouped, mean_mass = mean(mass, na.rm = TRUE), mean_height = mean(height, na.rm = TRUE), count = n()) !33
%>%
ύΠϓԋࢉࢠ%>% X %>% f X %>% f(y) X %>% f
%>% g X %>% f(y, .) !35 f(X) f(X, y) g(f(X)) f(y, X) લͷؔͷग़ྗΛ࣍ͷؔͷୈҾʹΘͨ͢ͷ $NE 4IJGU N $USM 4IJGU N Ͱೖྗ
ෳͷॲཧΛ͢Δ߹ df1 <- filter(starwars, species == "Human") df2 <- mutate(d1,
BMI = mass / (height/100)^2) df3 <- group_by(df2, gender) df4 <- summarise(df3, mean_BMI = mean(BMI, na.rm=TRUE), min_BMI = min(BMI, na.rm=TRUE), max_BMI = max(BMI, na.rm=TRUE) !36 # A tibble: 2 x 4 gender mean_BMI min_BMI max_BMI <chr> <dbl> <dbl> <dbl> 1 female 22.0 16.5 27.5 2 male 26.0 21.5 37.9
ෳͷॲཧΛ͢Δ߹ starwars %>% filter(species == "Human") %>% mutate(BMI = mass
/ (height/100)^2) %>% group_by(gender) %>% summarise(mean_BMI = mean(BMI, na.rm=TRUE), min_BMI = min(BMI, na.rm=TRUE), max_BMI = max(BMI, na.rm=TRUE)) %>%Λ͏͜ͱͰ ୭ʹͰಡΈ͍͢ίʔυʹʂʂ !37
࿅श ͷ࠷͍உੑΛ֬ೝͤΑ #.*ͷͬͱߴ͍ొਓ୭͔ ฏۉ͕࠷ߴ͍छԿ͔ ݕࡧͯͦ͠ͷ࢟Λ͔֬ΊΑ͏ !38
࣍ճ·Ͱͷ՝
՝ 1. ൃۭߓ (origin) ͝ͱͷඈߦػศͷ, ඈߦڑͷฏۉ, ग़ൃ࣌ࠁԆͷ ฏۉΛٻΊΑ 2. ͝ͱͷग़ൃ࣌ࠁԆͷฏۉΛٻΊΑ
3. ͝ͱʹܽߤʹͳͬͨศͷΛௐΑ ʢܽߤͩͱdep_delayͱarr_delay͕NAʹͳΔʣ 4. ࣮ࡍʹඈΜͩศͷඈߦڑͷඪ४ภࠩΛग़ൃۭߓ͝ͱʹٻΊ, ঢॱʹ ฒΑ 5. ͝ͱʹ, ۭߓLGA͔Β࠷ॳʹඈΜͩศͱ࠷ޙʹඈΜͩศΛநग़ͤΑ 6. ࣮ࡍʹඈΜͩศͷ͏ͪ, ఆࠁ௨Γग़ൃͨ͠ศͷׂ߹ΛௐΑ ώϯτɿdplyrͷؔͷதͰ n() Λ͏ͱߦΛࢉग़Ͱ͖Δ !40