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
belgrade2018_satrday_oop_Ildi_Czeller.pdf
Search
Ildikó Czeller
October 27, 2018
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
belgrade2018_satrday_oop_Ildi_Czeller.pdf
Ildikó Czeller
October 27, 2018
More Decks by Ildikó Czeller
See All by Ildikó Czeller
Making Email Campaigns More Effective: Send Time Optimization
czeildi
0
360
ropsec: a package for easing operations security for the R user
czeildi
2
660
The essentials to work with object-oriented systems in R
czeildi
0
140
Making email campaigns more effective: Send time optimization
czeildi
0
110
Other Decks in Programming
See All in Programming
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
250
Press start. Python's next generation.
willingc
PRO
3
270
初めての模倣学習とVLA
natsutan
0
330
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
110
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
1
390
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
110
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
530
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
1
2k
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
AIの中の人になってみる
htkym
0
140
不幸な GC
chencmd
0
820
ALB ログから Trace を気合で繋げる技術
fohte
7
770
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
How to Ace a Technical Interview
jacobian
281
24k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Code Reviewing Like a Champion
maltzj
528
40k
Designing for Performance
lara
611
70k
ラッコキーワード サービス紹介資料
rakko
1
4.6M
The Invisible Side of Design
smashingmag
301
52k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
790
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Transcript
object-oriented systems in R Ildi Czeller : @czeildi
- Data Scientist @Emarsys - 3 years R - started
with C++, Python Me:
- R user without CS background - understand core concepts
- explore & debug more effectively You:
summary(lm(y~x)) ... Coefficients: ... Signif codes: 0 ‘***’ Multiple R-squared:
0.7262 Min. : 1.0 1st Qu.: 25.8 Median : 50.5 Mean : 10049.5 3rd Qu.: 75.2 Max. :1000000.0 summary(c(1:99, 10^6))
date: 2018-10-27 venue: Belgrade # participants: 100+ attend -> learn
talk at -> feedback organize -> proud data behavior + object =
S3
+36 1 333-3333
lm(y~x) summary summary.lm Coef R^2
lm(y~x) summary summary.lm dispatch method class + generic +
details
class / object type
type/class in R integer character list Date data.frame r_conference base
types S3 types
method summary.lm generic class as.factor
method summary.data.frame generic class as.Date.numeric class generic
generic summary <- function(object, …) UseMethod(“summary”) sum <- function(…, na.rm
= FALSE) .Primitive(“sum”)
summary(lm(y~x)) Coefficients: … Signif codes: 0 ‘***’ Multiple R-squared: 0.7262
summary.lm(lm(y~x)) dispatch
why so powerful?
flexible & extensible
base R + different packages work together
complex types can inherit behavior from simpler types
class is a vector c(”r_conference”, “conference”, “event”) most specific à
à à least specific
specialize • print(data.table()) • print.data.table(data.table()) Sepal.Length Sepal.Width 1: 5.1 3.5
2: 4.9 3.0 3: 4.7 3.2 4: 4.6 3.1 5: 5.0 3.6 --- 146: 6.7 3.0 147: 6.3 2.5 148: 6.5 3.0 149: 6.2 3.4 150: 5.9 3.0 • print(data.frame()) • print.data.frame(data.frame()) Sepal.Length Sepal.Width 1 5.1 3.5 2 4.9 3.0 3 4.7 3.2 4 4.6 3.1 5 5.0 3.6 6 5.4 3.9 7 4.6 3.4 8 5.0 3.4 9 4.4 2.9 10 4.9 3.1 …
fallback • summary(data.table()) • summary.data.table(data.table()) • summary.data.frame(data.table()) Sepal.Length Min. :4.300
1st Qu.:5.100 Median :5.800 Mean :5.843 3rd Qu.:6.400 Max. :7.900 • summary(data.frame()) • summary.data.frame(data.frame()) Sepal.Length Min. :4.300 1st Qu.:5.100 Median :5.800 Mean :5.843 3rd Qu.:6.400 Max. :7.900
extend gift.conference gift.r_conference
learn more
explore • seq.Date • data.table:::print.data.table • lookup::lookup(“sum”) – Jim Hester
• https://github.com/wch/r-source
explore • sloop – R package by Hadley Wickham •
s3_class, ftype • s3_dispatch • s3_methods_class, s3_methods_generic
Advanced R by Hadley Wickham https://www.ildiczeller.com/2018/ 04/02/investigating-difftime- behavior/
take-away
use understand (create)