SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
1
Agenda
what are tibbles?
how are tibbles different from data frames?
how to create tibbles?
how to manipulate tibbles?
•
•
•
•
2
3
What are tibbles?
A tibble, or tbl_df, is a modern reimagining of the data.frame, keeping what time
has proven to be effective, and throwing out what is not. Tibbles are data.frames
that are lazy and surly: they do less (i.e. they don’t change variable names or types,
and don’t do partial matching) and complain more (e.g. when a variable does not
exist). This forces you to confront problems earlier, typically leading to cleaner, more
expressive code. Tibbles also have an enhanced print method() which makes
them easier to use with large datasets containing complex objects.
Source: http://tibble.tidyverse.org/
4
5
Creating tibbles
tibble(x = letters,
y = 1:26,
z = sample(100, 26))
## # A tibble: 26 x 3
## x y z
## <chr> <int> <int>
## 1 a 1 66
## 2 b 2 63
## 3 c 3 35
## 4 d 4 54
## 5 e 5 13
## 6 f 6 5
## 7 g 7 39
## 8 h 8 4
## 9 i 9 25
## 10 j 10 14
## # ... with 16 more rows
6
7
tibble features
never changes input’s types
never adjusts variable names
never prints all rows
never recycles vector of length greater than 1
•
•
•
•
8
Never changes input’s types
tibble(x = letters,
y = 1:26,
z = sample(100, 26))
## # A tibble: 26 x 3
## x y z
## <chr> <int> <int>
## 1 a 1 39
## 2 b 2 87
## 3 c 3 70
## 4 d 4 5
## 5 e 5 91
## 6 f 6 19
## 7 g 7 54
## 8 h 8 29
## 9 i 9 48
## 10 j 10 13
## # ... with 16 more rows
9
Never changes input’s types
data <- data.frame(x = letters, y = 1:26, z = sample(100, 26))
str(data)
## 'data.frame': 26 obs. of 3 variables:
## $ x: Factor w/ 26 levels "a","b","c","d",..: 1 2 3 4 5 6 7 8 9 10 ..
## $ y: int 1 2 3 4 5 6 7 8 9 10 ...
## $ z: int 16 42 94 40 68 29 13 50 34 79 ...
10
Never adjusts variable names
names(data.frame(`order value` = 10))
## [1] "order.value"
names(tibble(`order value` = 10))
## [1] "order value"
11
Never prints all rows
x <- 1:100
y <- letters[1]
z <- sample(c(TRUE, FALSE), 100, replace = TRUE)
tibble(x, y, z)
## # A tibble: 100 x 3
## x y z
## <int> <chr> <lgl>
## 1 1 a FALSE
## 2 2 a TRUE
## 3 3 a TRUE
## 4 4 a TRUE
## 5 5 a TRUE
## 6 6 a TRUE
## 7 7 a FALSE
## 8 8 a FALSE
## 9 9 a FALSE
## 10 10 a FALSE
## # ... with 90 more rows
12
Never recycle vector of length greater than 1
x <- 1:100
y <- letters
z <- sample(c(TRUE, FALSE), 100, replace = TRUE)
tibble(x, y, z)
Error in overscope_eval_next(overscope, expr) : object 'y' not found
13
14
Atomic Vectors
browsers <- c('chrome', 'safari', 'firefox', 'edge')
enframe(browsers)
## # A tibble: 4 x 2
## name value
## <int> <chr>
## 1 1 chrome
## 2 2 safari
## 3 3 firefox
## 4 4 edge
15
Atomic Vectors
browsers <- c(chrome = 40, firefox = 20, edge = 30, safari = 10)
enframe(browsers)
## # A tibble: 4 x 2
## name value
## <chr> <dbl>
## 1 chrome 40
## 2 firefox 20
## 3 edge 30
## 4 safari 10
16
17
Tribble
Another way to create tibbles is using tribble():
it is short for transposed tibbles
it is customized for data entry in code
column names start with ~
and values are separated by commas
•
•
•
•
18
Tribble
tribble(
~x, ~y, ~z,
#--|--|----
1, TRUE, 'a',
2, FALSE, 'b'
)
## # A tibble: 2 x 3
## x y z
## <dbl> <lgl> <chr>
## 1 1 TRUE a
## 2 2 FALSE b
19
Column Names
Names of the columns in tibbles need not be valid R variable names. They can contain unusual characters like a
space or a smiley but must be enclosed in ticks.
tibble(
` ` = 'space',
`2` = 'integer',
`:)` = 'smiley'
)
## # A tibble: 1 x 3
## ` ` `2` `:)`
## <chr> <chr> <chr>
## 1 space integer smiley
20
21
Add Rows
browsers <- enframe(c(chrome = 40, firefox = 20, edge = 30))
browsers
## # A tibble: 3 x 2
## name value
## <chr> <dbl>
## 1 chrome 40
## 2 firefox 20
## 3 edge 30
22
Add Rows
add_row(browsers, name = 'safari', value = 10)
## # A tibble: 4 x 2
## name value
## <chr> <dbl>
## 1 chrome 40
## 2 firefox 20
## 3 edge 30
## 4 safari 10
23
Add Rows
add_row(browsers, name = 'safari', value = 10, .before = 2)
## # A tibble: 4 x 2
## name value
## <chr> <dbl>
## 1 chrome 40
## 2 safari 10
## 3 firefox 20
## 4 edge 30
24
Add Column
browsers <- enframe(c(chrome = 40, firefox = 20, edge = 30, safari = 10)
add_column(browsers, visits = c(4000, 2000, 3000, 1000))
## # A tibble: 4 x 3
## name value visits
## <chr> <dbl> <dbl>
## 1 chrome 40 4000
## 2 firefox 20 2000
## 3 edge 30 3000
## 4 safari 10 1000
25
Remove Rownames
remove_rownames(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
## 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
## 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
## 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
## 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
## 6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
## 7 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4
## 8 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
## 9 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2
## 10 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4
## 11 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4
## 12 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3
## 13 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3
## 14 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3
## 15 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4
## 16 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4
26
Rownames to Column
head(rownames_to_column(mtcars))
## rowname mpg cyl disp hp drat wt qsec vs am gear car
## 1 Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4
## 2 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4
## 3 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4
## 4 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3
## 5 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3
## 6 Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3
27
Column to Rownames
mtcars_tbl <- rownames_to_column(mtcars)
column_to_rownames(mtcars_tbl)
## mpg cyl disp hp drat wt qsec vs am gear ca
## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4
## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4
## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4
## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3
## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3
## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3
## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3
## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4
## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4
## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4
## Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4
## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3
## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3
## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3
## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3
## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3
28
Glimpse
glimpse(mtcars)
## Observations: 32
## Variables: 11
## $ mpg <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19
## $ cyl <dbl> 6, 6, 4, 6, 8, 6, 8, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 4, 4,
## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7,
## $ hp <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180,
## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.
## $ wt <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190,
## $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00,
## $ vs <dbl> 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
## $ am <dbl> 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
## $ gear <dbl> 4, 4, 4, 3, 3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4,
## $ carb <dbl> 4, 4, 1, 1, 2, 1, 4, 2, 2, 4, 4, 3, 3, 3, 4, 4, 4, 1, 2,
29
Membership Testing
is_tibble(mtcars)
## [1] FALSE
is_tibble(as_tibble(mtcars))
## [1] TRUE
30
Rownames
has_rownames(mtcars)
## [1] TRUE
31
Check Column
has_name(mtcars, 'cyl')
## [1] TRUE
has_name(mtcars, 'gears')
## [1] FALSE
32
33
Summary
use tibble() to create tibbles
use as_tibble() to coerce other objects to tibble
use enframe() to coerce vector to tibble
use tribble() to create tibble using data entry
•
•
•
•
34
Summary
use add_row() to add a new row
use add_column() to add a new column
use remove_rownames() to remove rownames from data
use rownames_to_column() to coerce rowname to first column
use column_to_rownames() to coerce first column to rownames
•
•
•
•
•
35
Summary
use is_tibble() to test if an object is a tibble
use has_rownames() to check whether a data set has rownames
use has_name() to check if tibble has a specific column
use glimpse() to get an overview of data
•
•
•
•
36
37

Contenu connexe

Tendances

Image feature extraction
Image feature extractionImage feature extraction
Image feature extraction
Rushin Shah
 

Tendances (20)

Factors.pptx
Factors.pptxFactors.pptx
Factors.pptx
 
Back propagation
Back propagationBack propagation
Back propagation
 
Big data Clustering Algorithms And Strategies
Big data Clustering Algorithms And StrategiesBig data Clustering Algorithms And Strategies
Big data Clustering Algorithms And Strategies
 
Image feature extraction
Image feature extractionImage feature extraction
Image feature extraction
 
Exploratory Data Analysis using Python
Exploratory Data Analysis using PythonExploratory Data Analysis using Python
Exploratory Data Analysis using Python
 
Supervised learning and Unsupervised learning
Supervised learning and Unsupervised learning Supervised learning and Unsupervised learning
Supervised learning and Unsupervised learning
 
Creating R Packages
Creating R PackagesCreating R Packages
Creating R Packages
 
R programming
R programmingR programming
R programming
 
Decision tree induction \ Decision Tree Algorithm with Example| Data science
Decision tree induction \ Decision Tree Algorithm with Example| Data scienceDecision tree induction \ Decision Tree Algorithm with Example| Data science
Decision tree induction \ Decision Tree Algorithm with Example| Data science
 
8. R Graphics with R
8. R Graphics with R8. R Graphics with R
8. R Graphics with R
 
Text Detection and Recognition
Text Detection and RecognitionText Detection and Recognition
Text Detection and Recognition
 
R Graphical User Interface Comparison.pptx
R Graphical User Interface Comparison.pptxR Graphical User Interface Comparison.pptx
R Graphical User Interface Comparison.pptx
 
Neural network
Neural networkNeural network
Neural network
 
Decomposition using Functional Dependency
Decomposition using Functional DependencyDecomposition using Functional Dependency
Decomposition using Functional Dependency
 
PPT on Data Science Using Python
PPT on Data Science Using PythonPPT on Data Science Using Python
PPT on Data Science Using Python
 
DataEngConf: Feature Extraction: Modern Questions and Challenges at Google
DataEngConf: Feature Extraction: Modern Questions and Challenges at GoogleDataEngConf: Feature Extraction: Modern Questions and Challenges at Google
DataEngConf: Feature Extraction: Modern Questions and Challenges at Google
 
Texture Classification
Texture ClassificationTexture Classification
Texture Classification
 
R data types
R   data typesR   data types
R data types
 
K means report
K means reportK means report
K means report
 
Density based clustering
Density based clusteringDensity based clustering
Density based clustering
 

Similaire à Introduction to tibbles

Data manipulation and visualization in r 20190711 myanmarucsy
Data manipulation and visualization in r 20190711 myanmarucsyData manipulation and visualization in r 20190711 myanmarucsy
Data manipulation and visualization in r 20190711 myanmarucsy
SmartHinJ
 
Descriptive analytics in r programming language
Descriptive analytics in r programming languageDescriptive analytics in r programming language
Descriptive analytics in r programming language
Ashwini Mathur
 

Similaire à Introduction to tibbles (20)

Read/Import data from flat/delimited files into R
Read/Import data from flat/delimited files into RRead/Import data from flat/delimited files into R
Read/Import data from flat/delimited files into R
 
Data manipulation and visualization in r 20190711 myanmarucsy
Data manipulation and visualization in r 20190711 myanmarucsyData manipulation and visualization in r 20190711 myanmarucsy
Data manipulation and visualization in r 20190711 myanmarucsy
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
 
MH prediction modeling and validation in r (1) regression 190709
MH prediction modeling and validation in r (1) regression 190709MH prediction modeling and validation in r (1) regression 190709
MH prediction modeling and validation in r (1) regression 190709
 
Writing Readable Code with Pipes
Writing Readable Code with PipesWriting Readable Code with Pipes
Writing Readable Code with Pipes
 
Graphics in R
Graphics in RGraphics in R
Graphics in R
 
Data manipulation on r
Data manipulation on rData manipulation on r
Data manipulation on r
 
Chapter 2: R tutorial Handbook for Data Science and Machine Learning Practiti...
Chapter 2: R tutorial Handbook for Data Science and Machine Learning Practiti...Chapter 2: R tutorial Handbook for Data Science and Machine Learning Practiti...
Chapter 2: R tutorial Handbook for Data Science and Machine Learning Practiti...
 
Beyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the codeBeyond PHP - it's not (just) about the code
Beyond PHP - it's not (just) about the code
 
R Programming: Transform/Reshape Data In R
R Programming: Transform/Reshape Data In RR Programming: Transform/Reshape Data In R
R Programming: Transform/Reshape Data In R
 
Easy HTML Tables in RStudio with Tabyl and kableExtra
Easy HTML Tables in RStudio with Tabyl and kableExtraEasy HTML Tables in RStudio with Tabyl and kableExtra
Easy HTML Tables in RStudio with Tabyl and kableExtra
 
R programming language
R programming languageR programming language
R programming language
 
Applied Regression Analysis using R
Applied Regression Analysis using RApplied Regression Analysis using R
Applied Regression Analysis using R
 
chapter3
chapter3chapter3
chapter3
 
SevillaR meetup: dplyr and magrittr
SevillaR meetup: dplyr and magrittrSevillaR meetup: dplyr and magrittr
SevillaR meetup: dplyr and magrittr
 
Dplyr and Plyr
Dplyr and PlyrDplyr and Plyr
Dplyr and Plyr
 
Notes for C Programming for MCA, BCA, B. Tech CSE, ECE and MSC (CS) 3 of 5 b...
Notes for C Programming for MCA, BCA, B. Tech CSE, ECE and MSC (CS) 3 of 5  b...Notes for C Programming for MCA, BCA, B. Tech CSE, ECE and MSC (CS) 3 of 5  b...
Notes for C Programming for MCA, BCA, B. Tech CSE, ECE and MSC (CS) 3 of 5 b...
 
Rsm notes f14
Rsm notes f14Rsm notes f14
Rsm notes f14
 
Descriptive analytics in r programming language
Descriptive analytics in r programming languageDescriptive analytics in r programming language
Descriptive analytics in r programming language
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 

Plus de Rsquared Academy

Plus de Rsquared Academy (20)

Handling Date & Time in R
Handling Date & Time in RHandling Date & Time in R
Handling Date & Time in R
 
Market Basket Analysis in R
Market Basket Analysis in RMarket Basket Analysis in R
Market Basket Analysis in R
 
Practical Introduction to Web scraping using R
Practical Introduction to Web scraping using RPractical Introduction to Web scraping using R
Practical Introduction to Web scraping using R
 
Joining Data with dplyr
Joining Data with dplyrJoining Data with dplyr
Joining Data with dplyr
 
Explore Data using dplyr
Explore Data using dplyrExplore Data using dplyr
Explore Data using dplyr
 
Data Wrangling with dplyr
Data Wrangling with dplyrData Wrangling with dplyr
Data Wrangling with dplyr
 
Read data from Excel spreadsheets into R
Read data from Excel spreadsheets into RRead data from Excel spreadsheets into R
Read data from Excel spreadsheets into R
 
Variables & Data Types in R
Variables & Data Types in RVariables & Data Types in R
Variables & Data Types in R
 
How to install & update R packages?
How to install & update R packages?How to install & update R packages?
How to install & update R packages?
 
How to get help in R?
How to get help in R?How to get help in R?
How to get help in R?
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
 
RMySQL Tutorial For Beginners
RMySQL Tutorial For BeginnersRMySQL Tutorial For Beginners
RMySQL Tutorial For Beginners
 
R Markdown Tutorial For Beginners
R Markdown Tutorial For BeginnersR Markdown Tutorial For Beginners
R Markdown Tutorial For Beginners
 
R Data Visualization Tutorial: Bar Plots
R Data Visualization Tutorial: Bar PlotsR Data Visualization Tutorial: Bar Plots
R Data Visualization Tutorial: Bar Plots
 
R Programming: Introduction to Matrices
R Programming: Introduction to MatricesR Programming: Introduction to Matrices
R Programming: Introduction to Matrices
 
R Programming: Introduction to Vectors
R Programming: Introduction to VectorsR Programming: Introduction to Vectors
R Programming: Introduction to Vectors
 
R Programming: Variables & Data Types
R Programming: Variables & Data TypesR Programming: Variables & Data Types
R Programming: Variables & Data Types
 
Data Visualization With R: Learn To Combine Multiple Graphs
Data Visualization With R: Learn To Combine Multiple GraphsData Visualization With R: Learn To Combine Multiple Graphs
Data Visualization With R: Learn To Combine Multiple Graphs
 
R Data Visualization: Learn To Add Text Annotations To Plots
R Data Visualization: Learn To Add Text Annotations To PlotsR Data Visualization: Learn To Add Text Annotations To Plots
R Data Visualization: Learn To Add Text Annotations To Plots
 
Data Visualization With R: Learn To Modify Font Of Graphical Parameters
Data Visualization With R: Learn To Modify Font Of Graphical ParametersData Visualization With R: Learn To Modify Font Of Graphical Parameters
Data Visualization With R: Learn To Modify Font Of Graphical Parameters
 

Dernier

Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
gajnagarg
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
gajnagarg
 
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
gajnagarg
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptx
chadhar227
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
vexqp
 
Diamond Harbour \ Russian Call Girls Kolkata | Book 8005736733 Extreme Naught...
Diamond Harbour \ Russian Call Girls Kolkata | Book 8005736733 Extreme Naught...Diamond Harbour \ Russian Call Girls Kolkata | Book 8005736733 Extreme Naught...
Diamond Harbour \ Russian Call Girls Kolkata | Book 8005736733 Extreme Naught...
HyderabadDolls
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
nirzagarg
 
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
nirzagarg
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
nirzagarg
 

Dernier (20)

Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Latur [ 7014168258 ] Call Me For Genuine Models We ...
 
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
 
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
 
Aspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - AlmoraAspirational Block Program Block Syaldey District - Almora
Aspirational Block Program Block Syaldey District - Almora
 
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In bhavnagar [ 7014168258 ] Call Me For Genuine Models...
 
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
SAC 25 Final National, Regional & Local Angel Group Investing Insights 2024 0...
 
Ranking and Scoring Exercises for Research
Ranking and Scoring Exercises for ResearchRanking and Scoring Exercises for Research
Ranking and Scoring Exercises for Research
 
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
Nirala Nagar / Cheap Call Girls In Lucknow Phone No 9548273370 Elite Escort S...
 
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
 
Giridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime Giridih
Giridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime GiridihGiridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime Giridih
Giridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime Giridih
 
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service AvailableVastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Available
 
Statistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbersStatistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbers
 
Gartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptxGartner's Data Analytics Maturity Model.pptx
Gartner's Data Analytics Maturity Model.pptx
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
 
Diamond Harbour \ Russian Call Girls Kolkata | Book 8005736733 Extreme Naught...
Diamond Harbour \ Russian Call Girls Kolkata | Book 8005736733 Extreme Naught...Diamond Harbour \ Russian Call Girls Kolkata | Book 8005736733 Extreme Naught...
Diamond Harbour \ Russian Call Girls Kolkata | Book 8005736733 Extreme Naught...
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
 
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
Top profile Call Girls In Hapur [ 7014168258 ] Call Me For Genuine Models We ...
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
 

Introduction to tibbles

  • 1. 1
  • 2. Agenda what are tibbles? how are tibbles different from data frames? how to create tibbles? how to manipulate tibbles? • • • • 2
  • 3. 3
  • 4. What are tibbles? A tibble, or tbl_df, is a modern reimagining of the data.frame, keeping what time has proven to be effective, and throwing out what is not. Tibbles are data.frames that are lazy and surly: they do less (i.e. they don’t change variable names or types, and don’t do partial matching) and complain more (e.g. when a variable does not exist). This forces you to confront problems earlier, typically leading to cleaner, more expressive code. Tibbles also have an enhanced print method() which makes them easier to use with large datasets containing complex objects. Source: http://tibble.tidyverse.org/ 4
  • 5. 5
  • 6. Creating tibbles tibble(x = letters, y = 1:26, z = sample(100, 26)) ## # A tibble: 26 x 3 ## x y z ## <chr> <int> <int> ## 1 a 1 66 ## 2 b 2 63 ## 3 c 3 35 ## 4 d 4 54 ## 5 e 5 13 ## 6 f 6 5 ## 7 g 7 39 ## 8 h 8 4 ## 9 i 9 25 ## 10 j 10 14 ## # ... with 16 more rows 6
  • 7. 7
  • 8. tibble features never changes input’s types never adjusts variable names never prints all rows never recycles vector of length greater than 1 • • • • 8
  • 9. Never changes input’s types tibble(x = letters, y = 1:26, z = sample(100, 26)) ## # A tibble: 26 x 3 ## x y z ## <chr> <int> <int> ## 1 a 1 39 ## 2 b 2 87 ## 3 c 3 70 ## 4 d 4 5 ## 5 e 5 91 ## 6 f 6 19 ## 7 g 7 54 ## 8 h 8 29 ## 9 i 9 48 ## 10 j 10 13 ## # ... with 16 more rows 9
  • 10. Never changes input’s types data <- data.frame(x = letters, y = 1:26, z = sample(100, 26)) str(data) ## 'data.frame': 26 obs. of 3 variables: ## $ x: Factor w/ 26 levels "a","b","c","d",..: 1 2 3 4 5 6 7 8 9 10 .. ## $ y: int 1 2 3 4 5 6 7 8 9 10 ... ## $ z: int 16 42 94 40 68 29 13 50 34 79 ... 10
  • 11. Never adjusts variable names names(data.frame(`order value` = 10)) ## [1] "order.value" names(tibble(`order value` = 10)) ## [1] "order value" 11
  • 12. Never prints all rows x <- 1:100 y <- letters[1] z <- sample(c(TRUE, FALSE), 100, replace = TRUE) tibble(x, y, z) ## # A tibble: 100 x 3 ## x y z ## <int> <chr> <lgl> ## 1 1 a FALSE ## 2 2 a TRUE ## 3 3 a TRUE ## 4 4 a TRUE ## 5 5 a TRUE ## 6 6 a TRUE ## 7 7 a FALSE ## 8 8 a FALSE ## 9 9 a FALSE ## 10 10 a FALSE ## # ... with 90 more rows 12
  • 13. Never recycle vector of length greater than 1 x <- 1:100 y <- letters z <- sample(c(TRUE, FALSE), 100, replace = TRUE) tibble(x, y, z) Error in overscope_eval_next(overscope, expr) : object 'y' not found 13
  • 14. 14
  • 15. Atomic Vectors browsers <- c('chrome', 'safari', 'firefox', 'edge') enframe(browsers) ## # A tibble: 4 x 2 ## name value ## <int> <chr> ## 1 1 chrome ## 2 2 safari ## 3 3 firefox ## 4 4 edge 15
  • 16. Atomic Vectors browsers <- c(chrome = 40, firefox = 20, edge = 30, safari = 10) enframe(browsers) ## # A tibble: 4 x 2 ## name value ## <chr> <dbl> ## 1 chrome 40 ## 2 firefox 20 ## 3 edge 30 ## 4 safari 10 16
  • 17. 17
  • 18. Tribble Another way to create tibbles is using tribble(): it is short for transposed tibbles it is customized for data entry in code column names start with ~ and values are separated by commas • • • • 18
  • 19. Tribble tribble( ~x, ~y, ~z, #--|--|---- 1, TRUE, 'a', 2, FALSE, 'b' ) ## # A tibble: 2 x 3 ## x y z ## <dbl> <lgl> <chr> ## 1 1 TRUE a ## 2 2 FALSE b 19
  • 20. Column Names Names of the columns in tibbles need not be valid R variable names. They can contain unusual characters like a space or a smiley but must be enclosed in ticks. tibble( ` ` = 'space', `2` = 'integer', `:)` = 'smiley' ) ## # A tibble: 1 x 3 ## ` ` `2` `:)` ## <chr> <chr> <chr> ## 1 space integer smiley 20
  • 21. 21
  • 22. Add Rows browsers <- enframe(c(chrome = 40, firefox = 20, edge = 30)) browsers ## # A tibble: 3 x 2 ## name value ## <chr> <dbl> ## 1 chrome 40 ## 2 firefox 20 ## 3 edge 30 22
  • 23. Add Rows add_row(browsers, name = 'safari', value = 10) ## # A tibble: 4 x 2 ## name value ## <chr> <dbl> ## 1 chrome 40 ## 2 firefox 20 ## 3 edge 30 ## 4 safari 10 23
  • 24. Add Rows add_row(browsers, name = 'safari', value = 10, .before = 2) ## # A tibble: 4 x 2 ## name value ## <chr> <dbl> ## 1 chrome 40 ## 2 safari 10 ## 3 firefox 20 ## 4 edge 30 24
  • 25. Add Column browsers <- enframe(c(chrome = 40, firefox = 20, edge = 30, safari = 10) add_column(browsers, visits = c(4000, 2000, 3000, 1000)) ## # A tibble: 4 x 3 ## name value visits ## <chr> <dbl> <dbl> ## 1 chrome 40 4000 ## 2 firefox 20 2000 ## 3 edge 30 3000 ## 4 safari 10 1000 25
  • 26. Remove Rownames remove_rownames(mtcars) ## mpg cyl disp hp drat wt qsec vs am gear carb ## 1 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 ## 2 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 ## 3 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 ## 4 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 ## 5 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 ## 6 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 ## 7 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 ## 8 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 ## 9 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 ## 10 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 ## 11 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 ## 12 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 ## 13 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 ## 14 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3 ## 15 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 ## 16 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 26
  • 27. Rownames to Column head(rownames_to_column(mtcars)) ## rowname mpg cyl disp hp drat wt qsec vs am gear car ## 1 Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 ## 2 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 ## 3 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 ## 4 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 ## 5 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 ## 6 Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 27
  • 28. Column to Rownames mtcars_tbl <- rownames_to_column(mtcars) column_to_rownames(mtcars_tbl) ## mpg cyl disp hp drat wt qsec vs am gear ca ## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 ## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 ## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 ## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 ## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 ## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 ## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 ## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 ## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 ## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 ## Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 ## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 ## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 ## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 ## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 ## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 28
  • 29. Glimpse glimpse(mtcars) ## Observations: 32 ## Variables: 11 ## $ mpg <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19 ## $ cyl <dbl> 6, 6, 4, 6, 8, 6, 8, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 4, 4, ## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, ## $ hp <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, ## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3. ## $ wt <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, ## $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, ## $ vs <dbl> 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, ## $ am <dbl> 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, ## $ gear <dbl> 4, 4, 4, 3, 3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, ## $ carb <dbl> 4, 4, 1, 1, 2, 1, 4, 2, 2, 4, 4, 3, 3, 3, 4, 4, 4, 1, 2, 29
  • 30. Membership Testing is_tibble(mtcars) ## [1] FALSE is_tibble(as_tibble(mtcars)) ## [1] TRUE 30
  • 32. Check Column has_name(mtcars, 'cyl') ## [1] TRUE has_name(mtcars, 'gears') ## [1] FALSE 32
  • 33. 33
  • 34. Summary use tibble() to create tibbles use as_tibble() to coerce other objects to tibble use enframe() to coerce vector to tibble use tribble() to create tibble using data entry • • • • 34
  • 35. Summary use add_row() to add a new row use add_column() to add a new column use remove_rownames() to remove rownames from data use rownames_to_column() to coerce rowname to first column use column_to_rownames() to coerce first column to rownames • • • • • 35
  • 36. Summary use is_tibble() to test if an object is a tibble use has_rownames() to check whether a data set has rownames use has_name() to check if tibble has a specific column use glimpse() to get an overview of data • • • • 36
  • 37. 37