1/23/2019 r-ladies seattle data structures in r dr ... · data structures in r dr. rachael tatman,...
TRANSCRIPT
![Page 1: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/1.jpg)
@rctatman
Data Structures in RDr. Rachael Tatman, Kaggle Data Scientist
R-Ladies Seattle1/23/2019
![Page 2: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/2.jpg)
@rctatman
What are data structures?Ways of storing and organizing data.
![Page 3: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/3.jpg)
@rctatman
![Page 4: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/4.jpg)
@rctatman
![Page 5: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/5.jpg)
@rctatman
Same data type Different data types
1 dimension
2 dimensions
N dimensions
*I straight up copied the margins of this chart from Hadley's "Advanced R" book, which is very good!
![Page 6: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/6.jpg)
@rctatman
Same data type Different data types
1 dimension
2 dimensions
N dimensions
![Page 7: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/7.jpg)
@rctatman
Same data type Different data types
1 dimensionAtomic vectorc("a","b","c")
2 dimensions
N dimensions
![Page 8: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/8.jpg)
@rctatman
Same data type Different data types
1 dimensionAtomic vectorc("a","b","c")
2 dimensions Matrix
N dimensions
![Page 9: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/9.jpg)
@rctatman
Same data type Different data types
1 dimensionAtomic vectorc("a","b","c")
2 dimensions Matrix
N dimensions Array
![Page 10: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/10.jpg)
@rctatman
Same data type Different data types
1 dimension
2 dimensions
N dimensions
![Page 11: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/11.jpg)
@rctatman
Same data type Different data types
1 dimension List
2 dimensions
N dimensions
![Page 12: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/12.jpg)
@rctatman
Same data type Different data types
1 dimension List
2 dimensions Data frame
N dimensions
![Page 13: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/13.jpg)
@rctatman
Same data type Different data types
1 dimension Atomic vector List
2 dimensions Matrix Data frame
N dimensions Array
![Page 14: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/14.jpg)
@rctatman
Same data type Different data types
1 dimension Atomic vector List
2 dimensions Matrix Data frame
N dimensions ArrayPretty much all native data structures in R are made up of some combo of these
![Page 15: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/15.jpg)
@rctatman
Some important points● Basically everything in R is some flavor of vector
○ Any single piece of data, like a single number or character, is a vector of length one○ Each column in a dataframe is a vector (so can only have a single data type!)
● This means every piece of data in a data structure has a numeric "address" that lets you go right to it
○ vector[1]○ list[[1]]○ Dataframe[1,1]
● Having addresses make it very fast to find and perform operations on data, but slower to add and delete data from existing structures
○ Remember to pre-allocate your data structures!
![Page 16: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/16.jpg)
@rctatman
R is a bit of an odd langage...● Doesn't have native linked lists (including stacks or queues)● Doesn't have any native hashed data structures● Doesn't use pointers● Doesn't have any scalars ● Doesn't use binary trees as native data structures
![Page 17: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/17.jpg)
@rctatman
R is a bit of an odd langage...● Doesn't have native linked lists (including stacks or queues)● Doesn't have any native hashed data structures● Doesn't use pointers● Doesn't have any scalars ● Doesn't use binary trees as native data structures
Unfortunately, a lot of coding interview questions are set up explicitly to have you
show that you know how to use these things.
![Page 18: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/18.jpg)
@rctatman
R is a bit of an odd langage...● Doesn't have native linked lists (including stacks or queues)● Doesn't have any native hashed data structures● Doesn't use pointers● Doesn't have any scalars ● Doesn't use binary trees as native data structures
Unfortunately, a lot of coding interview questions are set up explicitly to have you
show that you know how to use these things.
Time for a Crash Course!
![Page 19: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/19.jpg)
@rctatman
R is a bit of an odd langage...● Doesn't have native linked lists (including stacks or queues)● Doesn't have any native hashed data structures● Doesn't use pointers (neither does Python or SQL though, so... ¯\_(ツ)_/¯) ● Doesn't have any scalars (just, like, a single number or string on its own)● Doesn't use binary trees as native data structures (basically just like decision
trees, which most data folks know about already)
Unfortunately, a lot of coding interview questions are set up explicitly to have you
show that you know how to use these things.
![Page 20: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/20.jpg)
@rctatman
Linked List● Made of up a series of nodes which
contain:○ A piece of data○ A link to the next node in the list○ (Sometimes a link to the previous node)
● Benefits?○ It’s very fast to add or remove data; you
just need to update the links in the nodes next to the ones you’ve changed
○ Nodes don’t need to be next to each other in memory (items in a vector do)
● Drawbacks?○ It’s very slow to get the nth element in the
list; you need to start from the beginning and go through the first n items in the list
Data
Link to next node
![Page 21: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/21.jpg)
@rctatman
Hashed data structures(E.g. hash table, hash map, Python dictionaries)
● Each piece of data (value) is associated with a specific address (hash or key)
● Benefits: ○ It takes the same amount of time to get a piece of
data, no matter how many pieces are stored (also true of R’s vectors!)
○ It can be very fast to add or remove data● Drawbacks:
○ There’s no innate order to hash tables ○ You need to make sure the addresses are unique
or can handle multiple things at the same address○ If you don’t save a list of addresses, you may not
know how many items are in your table○ Vectorization is right out
![Page 22: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/22.jpg)
@rctatman
To review…
● Linked lists● Hashtables
Same data type
Different data types
1D Atomic vector List
2D Matrix Data frame
N D Array
R’s Data Structures Data Structures NOT in R
![Page 23: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/23.jpg)
@rctatman
To review…
● Linked lists
● Hashtables
Same data type
Different data types
1D
2D
N D
R’s Data Structures Data Structures NOT in R
![Page 24: 1/23/2019 R-Ladies Seattle Data Structures in R Dr ... · Data Structures in R Dr. Rachael Tatman, Kaggle Data Scientist R-Ladies Seattle 1/23/2019. @rctatman What are data structures?](https://reader035.vdocuments.site/reader035/viewer/2022070810/5f0933017e708231d425b244/html5/thumbnails/24.jpg)
@rctatman
Thanks!Questions?
@rctatman