# to reproduce these slides do:pkgs = c("rgdal", "sf", "geojsonsf")install.packages(pkgs)
# to reproduce these slides do:pkgs = c("rgdal", "sf", "geojsonsf")install.packages(pkgs)
# to reproduce these slides do:pkgs = c("rgdal", "sf", "geojsonsf")install.packages(pkgs)
# to reproduce these slides do:pkgs = c("rgdal", "sf", "geojsonsf")install.packages(pkgs)
The Best Self-Help Books to Read in 2019, According to Amazon and Goodreads
There are loads of self help books out there
Originally published in 2001, it has gained huge popularity
2008 book by Scott Burkun aimed at software architects
Too techy for me, about managing 100s of people!
2015 book by Daniel Levitin
Too techy for me, about managing 100s of people!
Source - https://github.com/npct which hosts national web tool PCT www.pct.bike
2017 book by Mark Reed
This is the amount of useful work a person (not a computer) can do per unit time
This is the amount of useful work a person (not a computer) can do per unit time
How quickly the computer can undertake a piece of work
This is the amount of useful work a person (not a computer) can do per unit time
How quickly the computer can undertake a piece of work
One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation. (Ada Lovelace, 1842)
This is the amount of useful work a person (not a computer) can do per unit time
How quickly the computer can undertake a piece of work
One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation. (Ada Lovelace, 1842)
An efficient light shines bright with a minimum of energy consumption. In this final sense, efficiency has a formal definition as the ratio of work done per unit effort:
η=WQ
R.version
## _ ## platform x86_64-pc-linux-gnu ## arch x86_64 ## os linux-gnu ## system x86_64, linux-gnu ## status ## major 3 ## minor 6.1 ## year 2019 ## month 07 ## day 05 ## svn rev 76782 ## language R ## version.string R version 3.6.1 (2019-07-05)## nickname Action of the Toes
packageVersion("dplyr")
## [1] '0.8.3'
R.version
## _ ## platform x86_64-pc-linux-gnu ## arch x86_64 ## os linux-gnu ## system x86_64, linux-gnu ## status ## major 3 ## minor 6.1 ## year 2019 ## month 07 ## day 05 ## svn rev 76782 ## language R ## version.string R version 3.6.1 (2019-07-05)## nickname Action of the Toes
packageVersion("dplyr")
## [1] '0.8.3'
Is it mature?
Is it actively developed?
Is it well documented?
Is it well used?
Is it mature?
Is it actively developed?
Is it well documented?
Is it well used?
Is it mature?
Is it actively developed?
Is it well documented?
Is it well used?
See Efficient R Programming 4.4 for details
# 3 ways to read in files representing parks in Leedsrds = function() readRDS("parks-west-yorkshire.Rds")rgd = function() rgdal::readOGR(dsn = "parks-west-yorkshire.geojson", verbose = FALSE)sfr = function() sf::read_sf("parks-west-yorkshire.geojson")gsf = function() geojsonsf::geojson_sf("parks-west-yorkshire.geojson")res = bench::mark(check = F, rds(), rgd(), sfr(), gsf(), time_unit = "ms")res[1:5]
## # A tibble: 4 x 5## expression min median `itr/sec` mem_alloc## <bch:expr> <dbl> <dbl> <dbl> <bch:byt>## 1 rds() 4.75 5.10 188. 356.18KB## 2 rgd() 642. 642. 1.56 19.9MB## 3 sfr() 47.5 49.5 19.9 7.89MB## 4 gsf() 7.52 7.80 125. 1.14MB
# 3 ways to read in files representing parks in Leedsrds = function() readRDS("parks-west-yorkshire.Rds")rgd = function() rgdal::readOGR(dsn = "parks-west-yorkshire.geojson", verbose = FALSE)sfr = function() sf::read_sf("parks-west-yorkshire.geojson")gsf = function() geojsonsf::geojson_sf("parks-west-yorkshire.geojson")res = bench::mark(check = F, rds(), rgd(), sfr(), gsf(), time_unit = "ms")res[1:5]
## # A tibble: 4 x 5## expression min median `itr/sec` mem_alloc## <bch:expr> <dbl> <dbl> <dbl> <bch:byt>## 1 rds() 4.75 5.10 188. 356.18KB## 2 rgd() 642. 642. 1.56 19.9MB## 3 sfr() 47.5 49.5 19.9 7.89MB## 4 gsf() 7.52 7.80 125. 1.14MB
Which to use?
# 3 ways to read in files representing parks in Leedsrds = function() readRDS("parks-west-yorkshire.Rds")rgd = function() rgdal::readOGR(dsn = "parks-west-yorkshire.geojson", verbose = FALSE)sfr = function() sf::read_sf("parks-west-yorkshire.geojson")gsf = function() geojsonsf::geojson_sf("parks-west-yorkshire.geojson")res = bench::mark(check = F, rds(), rgd(), sfr(), gsf(), time_unit = "ms")res[1:5]
## # A tibble: 4 x 5## expression min median `itr/sec` mem_alloc## <bch:expr> <dbl> <dbl> <dbl> <bch:byt>## 1 rds() 4.75 5.10 188. 356.18KB## 2 rgd() 642. 642. 1.56 19.9MB## 3 sfr() 47.5 49.5 19.9 7.89MB## 4 gsf() 7.52 7.80 125. 1.14MB
Which to use?
Package/data format choice -> 200 fold speed-up!
# 3 ways to read in files representing parks in Leedsrds = function() readRDS("parks-west-yorkshire.Rds")rgd = function() rgdal::readOGR(dsn = "parks-west-yorkshire.geojson", verbose = FALSE)sfr = function() sf::read_sf("parks-west-yorkshire.geojson")gsf = function() geojsonsf::geojson_sf("parks-west-yorkshire.geojson")res = bench::mark(check = F, rds(), rgd(), sfr(), gsf(), time_unit = "ms")res[1:5]
## # A tibble: 4 x 5## expression min median `itr/sec` mem_alloc## <bch:expr> <dbl> <dbl> <dbl> <bch:byt>## 1 rds() 4.75 5.10 188. 356.18KB## 2 rgd() 642. 642. 1.56 19.9MB## 3 sfr() 47.5 49.5 19.9 7.89MB## 4 gsf() 7.52 7.80 125. 1.14MB
Which to use?
Package/data format choice -> 200 fold speed-up!
Rds fast + mem efficient, 'gsf' fast, memory hungry, sf slow but ubiquitous, rgdal ...
# 3 ways to read in files representing parks in Leedsrds = function() readRDS("parks-west-yorkshire.Rds")rgd = function() rgdal::readOGR(dsn = "parks-west-yorkshire.geojson", verbose = FALSE)sfr = function() sf::read_sf("parks-west-yorkshire.geojson")gsf = function() geojsonsf::geojson_sf("parks-west-yorkshire.geojson")res = bench::mark(check = F, rds(), rgd(), sfr(), gsf(), time_unit = "ms")res[1:5]
## # A tibble: 4 x 5## expression min median `itr/sec` mem_alloc## <bch:expr> <dbl> <dbl> <dbl> <bch:byt>## 1 rds() 4.75 5.10 188. 356.18KB## 2 rgd() 642. 642. 1.56 19.9MB## 3 sfr() 47.5 49.5 19.9 7.89MB## 4 gsf() 7.52 7.80 125. 1.14MB
Which to use?
Package/data format choice -> 200 fold speed-up!
Rds fast + mem efficient, 'gsf' fast, memory hungry, sf slow but ubiquitous, rgdal ...
For reproducible code, see https://github.com/Robinlovelace/EfficientWorkflows
plot(res)
# see https://geocompr.robinlovelace.net/adv-map.html to learn how to make more mapsmapview::mapview(gsf()) # the parks of West Yorkshire
In addition to uneatable statistical capabilities
Report/book/presentation making
Image manipulation with the magick package - see ropensci/magick
Map making - see geocompr.robinlovelace.net/
Emailing (!) - see rich-iannone/blastula
(again it can go too far)
In addition to uneatable statistical capabilities
Report/book/presentation making
Image manipulation with the magick package - see ropensci/magick
Map making - see geocompr.robinlovelace.net/
Emailing (!) - see rich-iannone/blastula
(again it can go too far)
But it's all about people
The evidence suggests that good diet, physical activity, plenty of sleep and a healthy work-life balance can all boost your speed and effectiveness at work (Jensen 2011; Pereira et al. 2015; Grant, Wallace, and Spurgeon 2013).
While we recommend the reader to reflect on this evidence and their own well-being, this is not a self help book. It is about programming. However, there is one non-programming skill that can have a huge impact on productivity: touch typing.
Contact me at r. lovelace at leeds ac dot uk (email), @robinlovelace
(twitter + github)
Contact me at r. lovelace at leeds ac dot uk (email), @robinlovelace
(twitter + github)
Check-out my repos at https://github.com/robinlovelace/
Contact me at r. lovelace at leeds ac dot uk (email), @robinlovelace
(twitter + github)
Check-out my repos at https://github.com/robinlovelace/
For more information on efficient workflows, see our book Efficient R Programming
Contact me at r. lovelace at leeds ac dot uk (email), @robinlovelace
(twitter + github)
Check-out my repos at https://github.com/robinlovelace/
For more information on efficient workflows, see our book Efficient R Programming
Thanks to all the R developers who made this possible, including (for this presentation):
remark.js, knitr, and R Markdown.
Slides created via the R package xaringan.
Contact me at r. lovelace at leeds ac dot uk (email), @robinlovelace
(twitter + github)
Check-out my repos at https://github.com/robinlovelace/
For more information on efficient workflows, see our book Efficient R Programming
Thanks to all the R developers who made this possible, including (for this presentation):
remark.js, knitr, and R Markdown.
Slides created via the R package xaringan.
Thanks to everyone for building a open and collaborative communities!
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |