Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
tidyverse tutorial 1
Search
kur0cky
September 20, 2019
Programming
94
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
1k
音楽理論と方向統計学の初歩/introduction of circular statistics and musicology
kur0cky
5
2.3k
NLP introduction in R 1
kur0cky
0
110
tidyverse tutorial 2
kur0cky
1
74
Other Decks in Programming
See All in Programming
setup-vp GitLab対応の裏側
naokihaba
0
160
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
550
golang-bob.pdf
iwatsukayura
0
120
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
360
The Rails Doctrine Decade
koic
2
560
Java 27新機能 / Java 27 new features
kishida
2
220
Domain-Driven Transformation
hschwentner
2
2.3k
contenteditable と日本語入力に向き合う
colorful12
0
190
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
150
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
3k
sbt 2.0: takeoff
eed3si9n
0
130
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
970
Featured
See All Featured
Crafting Experiences
bethany
1
380
Everyday Curiosity
cassininazir
0
350
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.3k
Building Adaptive Systems
keathley
44
3.2k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
Side Projects
sachag
456
43k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
560
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
310
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