SlideShare a Scribd company logo
Copyright (c) WLOG Solutions
Know your R usage
workflow to handle
reproducibility challenges
Budapest, 2018
Copyright (c) WLOG Solutions
Kate and Henry
Freelancer/scientist/
consultant
The Team
Corporate/
In-house team
Meet Personas
John
Student/hobbyist
Copyright (c) WLOG Solutions
They were coding in R
happily until that one
day...
Copyright (c) WLOG Solutions
https://xkcd.com/234/
Copyright (c) WLOG Solutions
John
Could not deliver R labs homework due to
package incompatibility at professors
laptop.
Copyright (c) WLOG Solutions
Kate and Henry
Missed deadlines due to problems
installing packages for their R shiny app at
Customer’s Server running
RedHat Enterprise 6.8.
Copyright (c) WLOG Solutions
The Team
Had serious issues with package versions
conflicts due to many users, many
projects,
running RedHat Enteprise machine
without internet access.
Copyright (c) WLOG Solutions
Three different stories
the same
reproducibility
problem.
Copyright (c) WLOG Solutions
What is reproducibility?
Copyright (c) WLOG Solutions
Reproducibility is the
ability to run your code repeatedly,
at different time,
using different computer,
in such way to
obtain the same outputs given the
same inputs.
Copyright (c) WLOG Solutions
Reproducibility is the
ability to run a code repeatedly,
at different time,
using different computer,
in such way to
obtain the same outputs given the
same inputs.
Copyright (c) WLOG Solutions
Reproducibility is the
ability to run your code repeatedly,
at different time,
using different computer,
in such way to
obtain the same outputs given the
same inputs.
Copyright (c) WLOG Solutions
Reproducibility is the
ability to run your code repeatedly,
at different time,
at different computer,
in such way to
obtain the same outputs given the
same inputs.
Copyright (c) WLOG Solutions
Reproducibility is the
ability to run your code repeatedly,
at different time,
using different computer,
in such way to
obtain the same outputs given the
same inputs.
Copyright (c) WLOG Solutions
Bare metal
Operating system
Solution dependencies
Code
Data
Copyright (c) WLOG Solutions
Few examples
Copyright (c) WLOG Solutions 17
forecast v7.2
- ggplot2 (>= 2.0.0)
- Rcpp (>= 0.11)
- Added gglagplot
R 3.3.1
2016-01-03 2016-09-08
forecast v6.2
- Rcpp (>= 0.11)
R 3.2.3
forecast v8.0
- ggplot2 (>= 2.0.0)
- Rcpp (>= 0.11)
- Modified defaults
for gglagplot
R 3.3.2
2017-03-01
Copyright (c) WLOG Solutions 18
Copyright (c) WLOG Solutions
Development Production
Copyright (c) WLOG Solutions
I recommend using
rocker/r-ver
Copyright (c) WLOG Solutions
When is reproducibility
important while you
program in R?
Copyright (c) WLOG Solutions
Debian/Ubuntu
RedHat/Centos
Windows
Debian/Ubuntu
RedHat/Centos
Windows
Development Production
Deploy (share) solution to production
Copyright (c) WLOG Solutions
Debian/Ubuntu
RedHat/Centos
Windows
Debian/Ubuntu
RedHat/Centos
Windows
Development Development’
Restore development environment
Copyright (c) WLOG Solutions
Three workflows
three reproducibility
solutions.
Copyright (c) WLOG Solutions
John, student/hobbyist
Dev/Production
Version
controlFamily&Friends or
Professor
MRAN
Copyright (c) WLOG Solutions
Kate and Henry, consultancy
team/freelancer/scientist
DevProduction
Continuous
integration
Version
control
Local CRAN
MRAN
On-premise
Cloud
Spark
etc.
Copyright (c) WLOG Solutions
The Team, corporate/in-house team
DevProduction
Continuous
integration
Version
control
Local CRAN
Copyright (c) WLOG Solutions
One word on Docker
Development Production
Build for
different OS
Deployment
package
. zip
Copyright (c) WLOG Solutions
Second word on Docker
Development Production
Build
Docker
image
Copyright (c) WLOG Solutions
CRAN
management
Multiple R
versions
Debian/Ubuntu
Windows
RedHat/CenOS
Docker
Jenkins
Isolated
projects
http://rsuite.io
https://github.com/WLOGSolutions/RSuite
https://www.slideshare.net/WLOGSolutions
No installation
on prod
Internetless
environments
System
requirements
Git/SVN
Binary
packages
31
Wit Jakuczun
CEO
wit.Jakuczun@wlogsolutions.com
+48 601820620
http://www.wlogsolutions.com

More Related Content

What's hot

NLP2API: Replication package accepted by ICSME 2018
NLP2API: Replication package accepted by ICSME 2018NLP2API: Replication package accepted by ICSME 2018
NLP2API: Replication package accepted by ICSME 2018
Masud Rahman
 
Archiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development toolsArchiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development tools
Gunther Pippèrr
 
OpenACC Monthly Highlights: June 2020
OpenACC Monthly Highlights: June 2020OpenACC Monthly Highlights: June 2020
OpenACC Monthly Highlights: June 2020
OpenACC
 
Integration of static and dynamic analysis for understanding legacy source code
Integration of static and dynamic analysis for understanding legacy source codeIntegration of static and dynamic analysis for understanding legacy source code
Integration of static and dynamic analysis for understanding legacy source code
Michael Moser
 
OpenACC Highlights: 2019 Year in Review
OpenACC Highlights: 2019 Year in ReviewOpenACC Highlights: 2019 Year in Review
OpenACC Highlights: 2019 Year in Review
OpenACC
 
ACS San Diego - The RDKit: Open-source cheminformatics
ACS San Diego - The RDKit: Open-source cheminformaticsACS San Diego - The RDKit: Open-source cheminformatics
ACS San Diego - The RDKit: Open-source cheminformatics
Greg Landrum
 
OpenACC Monthly Highlights: June 2021
OpenACC Monthly Highlights: June 2021OpenACC Monthly Highlights: June 2021
OpenACC Monthly Highlights: June 2021
OpenACC
 
OpenACC Monthly Highlights: March 2021
OpenACC Monthly Highlights: March 2021OpenACC Monthly Highlights: March 2021
OpenACC Monthly Highlights: March 2021
OpenACC
 
Scossu gdi iiif_r+d_report_2019
Scossu gdi iiif_r+d_report_2019Scossu gdi iiif_r+d_report_2019
Scossu gdi iiif_r+d_report_2019
Stefano Cossu
 
OpenACC Highlights: GTC Digital April 2020
OpenACC Highlights: GTC Digital April 2020OpenACC Highlights: GTC Digital April 2020
OpenACC Highlights: GTC Digital April 2020
OpenACC
 
OpenACC Monthly Highlights February 2019
OpenACC Monthly Highlights February 2019OpenACC Monthly Highlights February 2019
OpenACC Monthly Highlights February 2019
NVIDIA
 
OpenACC Monthly Highlights: May 2019
OpenACC Monthly Highlights: May 2019OpenACC Monthly Highlights: May 2019
OpenACC Monthly Highlights: May 2019
OpenACC
 
NASA_EPSCoR_poster_2015
NASA_EPSCoR_poster_2015NASA_EPSCoR_poster_2015
NASA_EPSCoR_poster_2015Longyin Cui
 
Quick and Dirty: Scaling Out Predictive Models Using Revolution Analytics on ...
Quick and Dirty: Scaling Out Predictive Models Using Revolution Analytics on ...Quick and Dirty: Scaling Out Predictive Models Using Revolution Analytics on ...
Quick and Dirty: Scaling Out Predictive Models Using Revolution Analytics on ...
Revolution Analytics
 
Raster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDigRaster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDig
Karin Patenge
 
Info gdal 20150915
Info gdal 20150915Info gdal 20150915
Info gdal 20150915
GeoMedeelel
 
Jan2015 bioinfo update_on_ftp_sr_aand_usage
Jan2015 bioinfo update_on_ftp_sr_aand_usageJan2015 bioinfo update_on_ftp_sr_aand_usage
Jan2015 bioinfo update_on_ftp_sr_aand_usage
GenomeInABottle
 
Beacon v2 Reference Implementation: An Overview
Beacon v2 Reference Implementation: An OverviewBeacon v2 Reference Implementation: An Overview
Beacon v2 Reference Implementation: An Overview
CINECAProject
 
167 - Productivity for proof engineering
167 - Productivity for proof engineering167 - Productivity for proof engineering
167 - Productivity for proof engineering
ESEM 2014
 

What's hot (19)

NLP2API: Replication package accepted by ICSME 2018
NLP2API: Replication package accepted by ICSME 2018NLP2API: Replication package accepted by ICSME 2018
NLP2API: Replication package accepted by ICSME 2018
 
Archiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development toolsArchiving Oracle Primavera project plans with software development tools
Archiving Oracle Primavera project plans with software development tools
 
OpenACC Monthly Highlights: June 2020
OpenACC Monthly Highlights: June 2020OpenACC Monthly Highlights: June 2020
OpenACC Monthly Highlights: June 2020
 
Integration of static and dynamic analysis for understanding legacy source code
Integration of static and dynamic analysis for understanding legacy source codeIntegration of static and dynamic analysis for understanding legacy source code
Integration of static and dynamic analysis for understanding legacy source code
 
OpenACC Highlights: 2019 Year in Review
OpenACC Highlights: 2019 Year in ReviewOpenACC Highlights: 2019 Year in Review
OpenACC Highlights: 2019 Year in Review
 
ACS San Diego - The RDKit: Open-source cheminformatics
ACS San Diego - The RDKit: Open-source cheminformaticsACS San Diego - The RDKit: Open-source cheminformatics
ACS San Diego - The RDKit: Open-source cheminformatics
 
OpenACC Monthly Highlights: June 2021
OpenACC Monthly Highlights: June 2021OpenACC Monthly Highlights: June 2021
OpenACC Monthly Highlights: June 2021
 
OpenACC Monthly Highlights: March 2021
OpenACC Monthly Highlights: March 2021OpenACC Monthly Highlights: March 2021
OpenACC Monthly Highlights: March 2021
 
Scossu gdi iiif_r+d_report_2019
Scossu gdi iiif_r+d_report_2019Scossu gdi iiif_r+d_report_2019
Scossu gdi iiif_r+d_report_2019
 
OpenACC Highlights: GTC Digital April 2020
OpenACC Highlights: GTC Digital April 2020OpenACC Highlights: GTC Digital April 2020
OpenACC Highlights: GTC Digital April 2020
 
OpenACC Monthly Highlights February 2019
OpenACC Monthly Highlights February 2019OpenACC Monthly Highlights February 2019
OpenACC Monthly Highlights February 2019
 
OpenACC Monthly Highlights: May 2019
OpenACC Monthly Highlights: May 2019OpenACC Monthly Highlights: May 2019
OpenACC Monthly Highlights: May 2019
 
NASA_EPSCoR_poster_2015
NASA_EPSCoR_poster_2015NASA_EPSCoR_poster_2015
NASA_EPSCoR_poster_2015
 
Quick and Dirty: Scaling Out Predictive Models Using Revolution Analytics on ...
Quick and Dirty: Scaling Out Predictive Models Using Revolution Analytics on ...Quick and Dirty: Scaling Out Predictive Models Using Revolution Analytics on ...
Quick and Dirty: Scaling Out Predictive Models Using Revolution Analytics on ...
 
Raster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDigRaster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDig
 
Info gdal 20150915
Info gdal 20150915Info gdal 20150915
Info gdal 20150915
 
Jan2015 bioinfo update_on_ftp_sr_aand_usage
Jan2015 bioinfo update_on_ftp_sr_aand_usageJan2015 bioinfo update_on_ftp_sr_aand_usage
Jan2015 bioinfo update_on_ftp_sr_aand_usage
 
Beacon v2 Reference Implementation: An Overview
Beacon v2 Reference Implementation: An OverviewBeacon v2 Reference Implementation: An Overview
Beacon v2 Reference Implementation: An Overview
 
167 - Productivity for proof engineering
167 - Productivity for proof engineering167 - Productivity for proof engineering
167 - Productivity for proof engineering
 

Similar to Know your R usage workflow to handle reproducibility challenges

How to lock a Python in a cage? Managing Python environment inside an R project
How to lock a Python in a cage?  Managing Python environment inside an R projectHow to lock a Python in a cage?  Managing Python environment inside an R project
How to lock a Python in a cage? Managing Python environment inside an R project
WLOG Solutions
 
Managing large scale projects in R with R Suite
Managing large scale projects in R with R SuiteManaging large scale projects in R with R Suite
Managing large scale projects in R with R Suite
WLOG Solutions
 
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
Amir Zmora
 
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
Alex Borysov
 
SoftwareEngineer
SoftwareEngineerSoftwareEngineer
SoftwareEngineerTodd Nguyen
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18
Xiaoli Liang
 
It's always your fault. Poznań ADG 2016
It's always your fault. Poznań ADG 2016It's always your fault. Poznań ADG 2016
It's always your fault. Poznań ADG 2016
Przemek Jakubczyk
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
Alexandre Gouaillard
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
Rubens Dos Santos Filho
 
Reactive robotics io_t_2017
Reactive robotics io_t_2017Reactive robotics io_t_2017
Reactive robotics io_t_2017
Trayan Iliev
 
Prepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/GreenPrepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/Green
Sonatype
 
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue GreenAll Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
Fab L
 
Bdd Net Frameworks
Bdd Net FrameworksBdd Net Frameworks
Bdd Net Frameworks
hdgarcia
 
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
Arnaud BUDKIEWICZ
 
SoftwareEngineer
SoftwareEngineerSoftwareEngineer
SoftwareEngineerTodd Nguyen
 
SoftwareEngineer
SoftwareEngineerSoftwareEngineer
SoftwareEngineerTodd Nguyen
 
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Thomas Wuerthinger
 

Similar to Know your R usage workflow to handle reproducibility challenges (20)

How to lock a Python in a cage? Managing Python environment inside an R project
How to lock a Python in a cage?  Managing Python environment inside an R projectHow to lock a Python in a cage?  Managing Python environment inside an R project
How to lock a Python in a cage? Managing Python environment inside an R project
 
Managing large scale projects in R with R Suite
Managing large scale projects in R with R SuiteManaging large scale projects in R with R Suite
Managing large scale projects in R with R Suite
 
resume
resumeresume
resume
 
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
 
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
"Enabling Googley microservices with gRPC" Riga DevDays 2018 edition
 
SoftwareEngineer
SoftwareEngineerSoftwareEngineer
SoftwareEngineer
 
EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18EclipseOMRBuildingBlocks4Polyglot_TURBO18
EclipseOMRBuildingBlocks4Polyglot_TURBO18
 
Ankur_Srivastava
Ankur_SrivastavaAnkur_Srivastava
Ankur_Srivastava
 
It's always your fault. Poznań ADG 2016
It's always your fault. Poznań ADG 2016It's always your fault. Poznań ADG 2016
It's always your fault. Poznań ADG 2016
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
 
Java
JavaJava
Java
 
Reactive robotics io_t_2017
Reactive robotics io_t_2017Reactive robotics io_t_2017
Reactive robotics io_t_2017
 
Prepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/GreenPrepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/Green
 
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue GreenAll Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
 
Bdd Net Frameworks
Bdd Net FrameworksBdd Net Frameworks
Bdd Net Frameworks
 
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
 
SoftwareEngineer
SoftwareEngineerSoftwareEngineer
SoftwareEngineer
 
SoftwareEngineer
SoftwareEngineerSoftwareEngineer
SoftwareEngineer
 
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
Graal and Truffle: Modularity and Separation of Concerns as Cornerstones for ...
 

More from Wit Jakuczun

recommendation = optimization(prediction)
recommendation = optimization(prediction)recommendation = optimization(prediction)
recommendation = optimization(prediction)
Wit Jakuczun
 
Always Be Deploying. How to make R great for machine learning in (not only) E...
Always Be Deploying. How to make R great for machine learning in (not only) E...Always Be Deploying. How to make R great for machine learning in (not only) E...
Always Be Deploying. How to make R great for machine learning in (not only) E...
Wit Jakuczun
 
Driving your marketing automation with multi-armed bandits in real time
Driving your marketing automation with multi-armed bandits in real timeDriving your marketing automation with multi-armed bandits in real time
Driving your marketing automation with multi-armed bandits in real time
Wit Jakuczun
 
Large scale machine learning projects with r suite
Large scale machine learning projects with r suiteLarge scale machine learning projects with r suite
Large scale machine learning projects with r suite
Wit Jakuczun
 
20170928 why r_r jako główna platforma do zaawansowanej analityki w enterprise
20170928 why r_r jako główna platforma do zaawansowanej analityki w enterprise20170928 why r_r jako główna platforma do zaawansowanej analityki w enterprise
20170928 why r_r jako główna platforma do zaawansowanej analityki w enterprise
Wit Jakuczun
 
Wit jakuczun dss_conf_2017_jak_wdrazac_r_w_enterprise
Wit jakuczun dss_conf_2017_jak_wdrazac_r_w_enterpriseWit jakuczun dss_conf_2017_jak_wdrazac_r_w_enterprise
Wit jakuczun dss_conf_2017_jak_wdrazac_r_w_enterprise
Wit Jakuczun
 
Bringing the Power of LocalSolver to R: a Real-Life Case-Study
Bringing the Power of LocalSolver to R: a Real-Life Case-StudyBringing the Power of LocalSolver to R: a Real-Life Case-Study
Bringing the Power of LocalSolver to R: a Real-Life Case-Study
Wit Jakuczun
 
ANALYTICS WITHOUT LOSS OF GENERALITY
ANALYTICS WITHOUT LOSS OF GENERALITYANALYTICS WITHOUT LOSS OF GENERALITY
ANALYTICS WITHOUT LOSS OF GENERALITY
Wit Jakuczun
 
Showcase: on segmentation importance for marketing campaign in retail using R...
Showcase: on segmentation importance for marketing campaign in retail using R...Showcase: on segmentation importance for marketing campaign in retail using R...
Showcase: on segmentation importance for marketing campaign in retail using R...
Wit Jakuczun
 
20150521 ser protecto_r_final
20150521 ser protecto_r_final20150521 ser protecto_r_final
20150521 ser protecto_r_final
Wit Jakuczun
 
Rozwiązywanie problemów optymalizacyjnych (z przykładem w R)
Rozwiązywanie problemów optymalizacyjnych (z przykładem w R)Rozwiązywanie problemów optymalizacyjnych (z przykładem w R)
Rozwiązywanie problemów optymalizacyjnych (z przykładem w R)
Wit Jakuczun
 
R+H2O - idealny tandem do analityki predykcyjnej?
R+H2O - idealny tandem do analityki predykcyjnej?R+H2O - idealny tandem do analityki predykcyjnej?
R+H2O - idealny tandem do analityki predykcyjnej?
Wit Jakuczun
 

More from Wit Jakuczun (12)

recommendation = optimization(prediction)
recommendation = optimization(prediction)recommendation = optimization(prediction)
recommendation = optimization(prediction)
 
Always Be Deploying. How to make R great for machine learning in (not only) E...
Always Be Deploying. How to make R great for machine learning in (not only) E...Always Be Deploying. How to make R great for machine learning in (not only) E...
Always Be Deploying. How to make R great for machine learning in (not only) E...
 
Driving your marketing automation with multi-armed bandits in real time
Driving your marketing automation with multi-armed bandits in real timeDriving your marketing automation with multi-armed bandits in real time
Driving your marketing automation with multi-armed bandits in real time
 
Large scale machine learning projects with r suite
Large scale machine learning projects with r suiteLarge scale machine learning projects with r suite
Large scale machine learning projects with r suite
 
20170928 why r_r jako główna platforma do zaawansowanej analityki w enterprise
20170928 why r_r jako główna platforma do zaawansowanej analityki w enterprise20170928 why r_r jako główna platforma do zaawansowanej analityki w enterprise
20170928 why r_r jako główna platforma do zaawansowanej analityki w enterprise
 
Wit jakuczun dss_conf_2017_jak_wdrazac_r_w_enterprise
Wit jakuczun dss_conf_2017_jak_wdrazac_r_w_enterpriseWit jakuczun dss_conf_2017_jak_wdrazac_r_w_enterprise
Wit jakuczun dss_conf_2017_jak_wdrazac_r_w_enterprise
 
Bringing the Power of LocalSolver to R: a Real-Life Case-Study
Bringing the Power of LocalSolver to R: a Real-Life Case-StudyBringing the Power of LocalSolver to R: a Real-Life Case-Study
Bringing the Power of LocalSolver to R: a Real-Life Case-Study
 
ANALYTICS WITHOUT LOSS OF GENERALITY
ANALYTICS WITHOUT LOSS OF GENERALITYANALYTICS WITHOUT LOSS OF GENERALITY
ANALYTICS WITHOUT LOSS OF GENERALITY
 
Showcase: on segmentation importance for marketing campaign in retail using R...
Showcase: on segmentation importance for marketing campaign in retail using R...Showcase: on segmentation importance for marketing campaign in retail using R...
Showcase: on segmentation importance for marketing campaign in retail using R...
 
20150521 ser protecto_r_final
20150521 ser protecto_r_final20150521 ser protecto_r_final
20150521 ser protecto_r_final
 
Rozwiązywanie problemów optymalizacyjnych (z przykładem w R)
Rozwiązywanie problemów optymalizacyjnych (z przykładem w R)Rozwiązywanie problemów optymalizacyjnych (z przykładem w R)
Rozwiązywanie problemów optymalizacyjnych (z przykładem w R)
 
R+H2O - idealny tandem do analityki predykcyjnej?
R+H2O - idealny tandem do analityki predykcyjnej?R+H2O - idealny tandem do analityki predykcyjnej?
R+H2O - idealny tandem do analityki predykcyjnej?
 

Recently uploaded

一比一原版(BU毕业证)波士顿大学毕业证成绩单
一比一原版(BU毕业证)波士顿大学毕业证成绩单一比一原版(BU毕业证)波士顿大学毕业证成绩单
一比一原版(BU毕业证)波士顿大学毕业证成绩单
ewymefz
 
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Subhajit Sahu
 
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
nscud
 
Machine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptxMachine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptx
balafet
 
Opendatabay - Open Data Marketplace.pptx
Opendatabay - Open Data Marketplace.pptxOpendatabay - Open Data Marketplace.pptx
Opendatabay - Open Data Marketplace.pptx
Opendatabay
 
一比一原版(CU毕业证)卡尔顿大学毕业证成绩单
一比一原版(CU毕业证)卡尔顿大学毕业证成绩单一比一原版(CU毕业证)卡尔顿大学毕业证成绩单
一比一原版(CU毕业证)卡尔顿大学毕业证成绩单
yhkoc
 
一比一原版(QU毕业证)皇后大学毕业证成绩单
一比一原版(QU毕业证)皇后大学毕业证成绩单一比一原版(QU毕业证)皇后大学毕业证成绩单
一比一原版(QU毕业证)皇后大学毕业证成绩单
enxupq
 
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
slg6lamcq
 
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
ahzuo
 
Data Centers - Striving Within A Narrow Range - Research Report - MCG - May 2...
Data Centers - Striving Within A Narrow Range - Research Report - MCG - May 2...Data Centers - Striving Within A Narrow Range - Research Report - MCG - May 2...
Data Centers - Striving Within A Narrow Range - Research Report - MCG - May 2...
pchutichetpong
 
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
ewymefz
 
Criminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdfCriminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdf
Criminal IP
 
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
mbawufebxi
 
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
axoqas
 
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
oz8q3jxlp
 
一比一原版(UofM毕业证)明尼苏达大学毕业证成绩单
一比一原版(UofM毕业证)明尼苏达大学毕业证成绩单一比一原版(UofM毕业证)明尼苏达大学毕业证成绩单
一比一原版(UofM毕业证)明尼苏达大学毕业证成绩单
ewymefz
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单
ewymefz
 
Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...
Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...
Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...
John Andrews
 
Adjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTESAdjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTES
Subhajit Sahu
 
Criminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdfCriminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdf
Criminal IP
 

Recently uploaded (20)

一比一原版(BU毕业证)波士顿大学毕业证成绩单
一比一原版(BU毕业证)波士顿大学毕业证成绩单一比一原版(BU毕业证)波士顿大学毕业证成绩单
一比一原版(BU毕业证)波士顿大学毕业证成绩单
 
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
Levelwise PageRank with Loop-Based Dead End Handling Strategy : SHORT REPORT ...
 
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
一比一原版(CBU毕业证)卡普顿大学毕业证成绩单
 
Machine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptxMachine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptx
 
Opendatabay - Open Data Marketplace.pptx
Opendatabay - Open Data Marketplace.pptxOpendatabay - Open Data Marketplace.pptx
Opendatabay - Open Data Marketplace.pptx
 
一比一原版(CU毕业证)卡尔顿大学毕业证成绩单
一比一原版(CU毕业证)卡尔顿大学毕业证成绩单一比一原版(CU毕业证)卡尔顿大学毕业证成绩单
一比一原版(CU毕业证)卡尔顿大学毕业证成绩单
 
一比一原版(QU毕业证)皇后大学毕业证成绩单
一比一原版(QU毕业证)皇后大学毕业证成绩单一比一原版(QU毕业证)皇后大学毕业证成绩单
一比一原版(QU毕业证)皇后大学毕业证成绩单
 
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
 
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
 
Data Centers - Striving Within A Narrow Range - Research Report - MCG - May 2...
Data Centers - Striving Within A Narrow Range - Research Report - MCG - May 2...Data Centers - Striving Within A Narrow Range - Research Report - MCG - May 2...
Data Centers - Striving Within A Narrow Range - Research Report - MCG - May 2...
 
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
一比一原版(UPenn毕业证)宾夕法尼亚大学毕业证成绩单
 
Criminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdfCriminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdf
 
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
一比一原版(Bradford毕业证书)布拉德福德大学毕业证如何办理
 
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
 
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
 
一比一原版(UofM毕业证)明尼苏达大学毕业证成绩单
一比一原版(UofM毕业证)明尼苏达大学毕业证成绩单一比一原版(UofM毕业证)明尼苏达大学毕业证成绩单
一比一原版(UofM毕业证)明尼苏达大学毕业证成绩单
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单
 
Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...
Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...
Chatty Kathy - UNC Bootcamp Final Project Presentation - Final Version - 5.23...
 
Adjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTESAdjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTES
 
Criminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdfCriminal IP - Threat Hunting Webinar.pdf
Criminal IP - Threat Hunting Webinar.pdf
 

Know your R usage workflow to handle reproducibility challenges

  • 1. Copyright (c) WLOG Solutions Know your R usage workflow to handle reproducibility challenges Budapest, 2018
  • 2. Copyright (c) WLOG Solutions Kate and Henry Freelancer/scientist/ consultant The Team Corporate/ In-house team Meet Personas John Student/hobbyist
  • 3. Copyright (c) WLOG Solutions They were coding in R happily until that one day...
  • 4. Copyright (c) WLOG Solutions https://xkcd.com/234/
  • 5. Copyright (c) WLOG Solutions John Could not deliver R labs homework due to package incompatibility at professors laptop.
  • 6. Copyright (c) WLOG Solutions Kate and Henry Missed deadlines due to problems installing packages for their R shiny app at Customer’s Server running RedHat Enterprise 6.8.
  • 7. Copyright (c) WLOG Solutions The Team Had serious issues with package versions conflicts due to many users, many projects, running RedHat Enteprise machine without internet access.
  • 8. Copyright (c) WLOG Solutions Three different stories the same reproducibility problem.
  • 9. Copyright (c) WLOG Solutions What is reproducibility?
  • 10. Copyright (c) WLOG Solutions Reproducibility is the ability to run your code repeatedly, at different time, using different computer, in such way to obtain the same outputs given the same inputs.
  • 11. Copyright (c) WLOG Solutions Reproducibility is the ability to run a code repeatedly, at different time, using different computer, in such way to obtain the same outputs given the same inputs.
  • 12. Copyright (c) WLOG Solutions Reproducibility is the ability to run your code repeatedly, at different time, using different computer, in such way to obtain the same outputs given the same inputs.
  • 13. Copyright (c) WLOG Solutions Reproducibility is the ability to run your code repeatedly, at different time, at different computer, in such way to obtain the same outputs given the same inputs.
  • 14. Copyright (c) WLOG Solutions Reproducibility is the ability to run your code repeatedly, at different time, using different computer, in such way to obtain the same outputs given the same inputs.
  • 15. Copyright (c) WLOG Solutions Bare metal Operating system Solution dependencies Code Data
  • 16. Copyright (c) WLOG Solutions Few examples
  • 17. Copyright (c) WLOG Solutions 17 forecast v7.2 - ggplot2 (>= 2.0.0) - Rcpp (>= 0.11) - Added gglagplot R 3.3.1 2016-01-03 2016-09-08 forecast v6.2 - Rcpp (>= 0.11) R 3.2.3 forecast v8.0 - ggplot2 (>= 2.0.0) - Rcpp (>= 0.11) - Modified defaults for gglagplot R 3.3.2 2017-03-01
  • 18. Copyright (c) WLOG Solutions 18
  • 19. Copyright (c) WLOG Solutions Development Production
  • 20. Copyright (c) WLOG Solutions I recommend using rocker/r-ver
  • 21. Copyright (c) WLOG Solutions When is reproducibility important while you program in R?
  • 22. Copyright (c) WLOG Solutions Debian/Ubuntu RedHat/Centos Windows Debian/Ubuntu RedHat/Centos Windows Development Production Deploy (share) solution to production
  • 23. Copyright (c) WLOG Solutions Debian/Ubuntu RedHat/Centos Windows Debian/Ubuntu RedHat/Centos Windows Development Development’ Restore development environment
  • 24. Copyright (c) WLOG Solutions Three workflows three reproducibility solutions.
  • 25. Copyright (c) WLOG Solutions John, student/hobbyist Dev/Production Version controlFamily&Friends or Professor MRAN
  • 26. Copyright (c) WLOG Solutions Kate and Henry, consultancy team/freelancer/scientist DevProduction Continuous integration Version control Local CRAN MRAN On-premise Cloud Spark etc.
  • 27. Copyright (c) WLOG Solutions The Team, corporate/in-house team DevProduction Continuous integration Version control Local CRAN
  • 28. Copyright (c) WLOG Solutions One word on Docker Development Production Build for different OS Deployment package . zip
  • 29. Copyright (c) WLOG Solutions Second word on Docker Development Production Build Docker image
  • 30. Copyright (c) WLOG Solutions CRAN management Multiple R versions Debian/Ubuntu Windows RedHat/CenOS Docker Jenkins Isolated projects http://rsuite.io https://github.com/WLOGSolutions/RSuite https://www.slideshare.net/WLOGSolutions No installation on prod Internetless environments System requirements Git/SVN Binary packages