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
97
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
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1k
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
180
Workers Cache を知る
syumai
0
370
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
160
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
180
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
870
AWSに止められる覚悟してますか?
morizo_1984
2
540
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
180
ActionController meets Protocol Buffers
sorah
0
650
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.7k
パスワード再設定メールのURLについて知っておこう
uyuki234
0
170
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
600
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
790
Code Review Best Practice
trishagee
74
20k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
エンジニアに許された特別な時間の終わり
watany
109
250k
Google's AI Overviews - The New Search
badams
0
1.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
860
Building the Perfect Custom Keyboard
takai
2
910
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
530
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