0% found this document useful (0 votes)
42 views81 pages

Simple R

The document describes the history and development of R from its origins as the S language at Bell Labs in the 1970s to its current use. It notes key events like the release of R 1.0.0 in 2000 and the growth of CRAN from 12 packages in 1997. The individual then shares their personal involvement with R from first using the S implementation called Ace in 1987 to contributing their first R package in 2006.

Uploaded by

shubhang2392
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views81 pages

Simple R

The document describes the history and development of R from its origins as the S language at Bell Labs in the 1970s to its current use. It notes key events like the release of R 1.0.0 in 2000 and the growth of CRAN from 12 packages in 1997. The individual then shares their personal involvement with R from first using the S implementation called Ace in 1987 to contributing their first R package in 2006.

Uploaded by

shubhang2392
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Simple

.
......
tips, tricks & tools
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
A brief history of R & R
1976: S language developed at Bell Laboratories.
1980: S first used outside Bell.
1987: I first used an implementation of S (called
Ace) distributed by CSIRO.
1988: S-PLUS produced, and I start using it.
1996: I heard Ross Ihaka give a talk about R at a
statistics conference.
1997: CRAN began with 12 packages.
2000: R 1.0.0 released.
2001: I stopped using S-PLUS and switch to R.
2004: I contributed my first function to R
(quantile).
2006: I contributed my first package to CRAN
(forecast).
2
Outline
1 Getting help
2 Finding functions
3 Digging into functions
4 Writing functions
5 Debugging
6 Version control
7 My R workflow
3
Getting help
StackOverflow.com
For programming
questions.
4
Getting help
StackOverflow.com
For programming
questions.
CrossValidated.com
For statistical
questions.
4
Getting help
StackOverflow.com
For programming
questions.
CrossValidated.com
For statistical
questions.
R-help mailing lists
stat.ethz.ch/
mailman/listinfo/
r-help
Only when all-else
fails.
4
Outline
1 Getting help
2 Finding functions
3 Digging into functions
4 Writing functions
5 Debugging
6 Version control
7 My R workflow
5
How to find the right function
Functions in installed packages
.
......
help.search("neural"). Equivalently: ??neural
Also built into RStudio help.
Functions in other CRAN packages
.
......
library(sos)
findFn("neural")
RSiteSearch("neural")
findFn only searches functions.
RSiteSearch searches more widely.
rseek.org
Google customized search on R-related sites.
6
How to find the right function
Functions in installed packages
.
......
help.search("neural"). Equivalently: ??neural
Also built into RStudio help.
Functions in other CRAN packages
.
......
library(sos)
findFn("neural")
RSiteSearch("neural")
findFn only searches functions.
RSiteSearch searches more widely.
rseek.org
Google customized search on R-related sites.
6
How to find the right function
Functions in installed packages
.
......
help.search("neural"). Equivalently: ??neural
Also built into RStudio help.
Functions in other CRAN packages
.
......
library(sos)
findFn("neural")
RSiteSearch("neural")
findFn only searches functions.
RSiteSearch searches more widely.
rseek.org
Google customized search on R-related sites.
6
How to find the right function
Functions in installed packages
.
......
help.search("neural"). Equivalently: ??neural
Also built into RStudio help.
Functions in other CRAN packages
.
......
library(sos)
findFn("neural")
RSiteSearch("neural")
findFn only searches functions.
RSiteSearch searches more widely.
rseek.org
Google customized search on R-related sites.
6
How to find the right function
Functions in installed packages
.
......
help.search("neural"). Equivalently: ??neural
Also built into RStudio help.
Functions in other CRAN packages
.
......
library(sos)
findFn("neural")
RSiteSearch("neural")
findFn only searches functions.
RSiteSearch searches more widely.
rseek.org
Google customized search on R-related sites.
6
CRAN Task Views
.
......
cran.r-project.org/
web/views/
Curated reviews of
packages by subject
Use install.views()
and update.views()
in the ctv package.
7
CRAN Task Views
.
......
cran.r-project.org/
web/views/
Curated reviews of
packages by subject
Use install.views()
and update.views()
in the ctv package.
7
Outline
1 Getting help
2 Finding functions
3 Digging into functions
4 Writing functions
5 Debugging
6 Version control
7 My R workflow
8
Digging into functions
.
Example: How does forecast for ets work?
..
......
forecast
forecast.ets
forecast:::pegelsfcast.C
Typing the name of a function gives its
definition.
Be aware of classes and methods.
Type package:::function for hidden
functions.
Download the tar.gz file from CRAN if
you want to see any underlying C or
Fortran code.
9
Digging into functions
.
Example: How does forecast for ets work?
..
......
forecast
forecast.ets
forecast:::pegelsfcast.C
Typing the name of a function gives its
definition.
Be aware of classes and methods.
Type package:::function for hidden
functions.
Download the tar.gz file from CRAN if
you want to see any underlying C or
Fortran code.
9
Digging into functions
.
Example: How does forecast for ets work?
..
......
forecast
forecast.ets
forecast:::pegelsfcast.C
Typing the name of a function gives its
definition.
Be aware of classes and methods.
Type package:::function for hidden
functions.
Download the tar.gz file from CRAN if
you want to see any underlying C or
Fortran code.
9
Digging into functions
.
Example: How does forecast for ets work?
..
......
forecast
forecast.ets
forecast:::pegelsfcast.C
Typing the name of a function gives its
definition.
Be aware of classes and methods.
Type package:::function for hidden
functions.
Download the tar.gz file from CRAN if
you want to see any underlying C or
Fortran code.
9
Digging into functions
.
Example: How does forecast for ets work?
..
......
forecast
forecast.ets
forecast:::pegelsfcast.C
Typing the name of a function gives its
definition.
Be aware of classes and methods.
Type package:::function for hidden
functions.
Download the tar.gz file from CRAN if
you want to see any underlying C or
Fortran code.
9
Outline
1 Getting help
2 Finding functions
3 Digging into functions
4 Writing functions
5 Debugging
6 Version control
7 My R workflow
10
Good habits
indenting and commenting.
Reindenting using RStudio.
formatR package: I run tidy.dir() before
reading student code!
Google R style guide:
Hadleys R style guide:
11
Good habits
indenting and commenting.
Reindenting using RStudio.
formatR package: I run tidy.dir() before
reading student code!
Google R style guide:
Hadleys R style guide:
11
Good habits
indenting and commenting.
Reindenting using RStudio.
formatR package: I run tidy.dir() before
reading student code!
Google R style guide:
Hadleys R style guide:
11
Good habits
indenting and commenting.
Reindenting using RStudio.
formatR package: I run tidy.dir() before
reading student code!
Google R style guide:
Hadleys R style guide:
11
Good habits
indenting and commenting.
Reindenting using RStudio.
formatR package: I run tidy.dir() before
reading student code!
Google R style guide:
Hadleys R style guide:
11
Outline
1 Getting help
2 Finding functions
3 Digging into functions
4 Writing functions
5 Debugging
6 Version control
7 My R workflow
12
Simple debugging tools
.
When something goes wrong:
..
......
traceback()
options(error=recover)
debug()
browser()
trace()
.
More extensive debugging tools discussed at
..
......
www.stats.uwo.ca/faculty/murdoch/
software/debuggingR/
.
......
RStudio plans to have debugging tools in a
future release.
13
Simple debugging tools
.
When something goes wrong:
..
......
traceback()
options(error=recover)
debug()
browser()
trace()
.
More extensive debugging tools discussed at
..
......
www.stats.uwo.ca/faculty/murdoch/
software/debuggingR/
.
......
RStudio plans to have debugging tools in a
future release.
13
Simple debugging tools
.
When something goes wrong:
..
......
traceback()
options(error=recover)
debug()
browser()
trace()
.
More extensive debugging tools discussed at
..
......
www.stats.uwo.ca/faculty/murdoch/
software/debuggingR/
.
......
RStudio plans to have debugging tools in a
future release.
13
Simple debugging tools
.
When something goes wrong:
..
......
traceback()
options(error=recover)
debug()
browser()
trace()
.
More extensive debugging tools discussed at
..
......
www.stats.uwo.ca/faculty/murdoch/
software/debuggingR/
.
......
RStudio plans to have debugging tools in a
future release.
13
Simple debugging tools
.
When something goes wrong:
..
......
traceback()
options(error=recover)
debug()
browser()
trace()
.
More extensive debugging tools discussed at
..
......
www.stats.uwo.ca/faculty/murdoch/
software/debuggingR/
.
......
RStudio plans to have debugging tools in a
future release.
13
Simple debugging tools
.
When something goes wrong:
..
......
traceback()
options(error=recover)
debug()
browser()
trace()
.
More extensive debugging tools discussed at
..
......
www.stats.uwo.ca/faculty/murdoch/
software/debuggingR/
.
......
RStudio plans to have debugging tools in a
future release.
13
Simple debugging tools
.
When something goes wrong:
..
......
traceback()
options(error=recover)
debug()
browser()
trace()
.
More extensive debugging tools discussed at
..
......
www.stats.uwo.ca/faculty/murdoch/
software/debuggingR/
.
......
RStudio plans to have debugging tools in a
future release.
13
Simple debugging tools
.
When something goes wrong:
..
......
traceback()
options(error=recover)
debug()
browser()
trace()
.
More extensive debugging tools discussed at
..
......
www.stats.uwo.ca/faculty/murdoch/
software/debuggingR/
.
......
RStudio plans to have debugging tools in a
future release.
13
Outline
1 Getting help
2 Finding functions
3 Digging into functions
4 Writing functions
5 Debugging
6 Version control
7 My R workflow
14
Version control
.
......
In any non-trivial project, it is important to keep
track of versions of R code and documents.
Dropbox
Every version of your files for the last 30 days
(or longer if you buy Packrat).
But no built-in diff facilities or changelog.
Git
Free version control system.
Easy to fork or roll back.
Install git software on your local computer.
Manage via RStudio.
15
Version control
.
......
In any non-trivial project, it is important to keep
track of versions of R code and documents.
Dropbox
Every version of your files for the last 30 days
(or longer if you buy Packrat).
But no built-in diff facilities or changelog.
Git
Free version control system.
Easy to fork or roll back.
Install git software on your local computer.
Manage via RStudio.
15
Version control
.
......
In any non-trivial project, it is important to keep
track of versions of R code and documents.
Dropbox
Every version of your files for the last 30 days
(or longer if you buy Packrat).
But no built-in diff facilities or changelog.
Git
Free version control system.
Easy to fork or roll back.
Install git software on your local computer.
Manage via RStudio.
15
Version control
.
......
In any non-trivial project, it is important to keep
track of versions of R code and documents.
Dropbox
Every version of your files for the last 30 days
(or longer if you buy Packrat).
But no built-in diff facilities or changelog.
Git
Free version control system.
Easy to fork or roll back.
Install git software on your local computer.
Manage via RStudio.
15
Version control
.
......
In any non-trivial project, it is important to keep
track of versions of R code and documents.
Dropbox
Every version of your files for the last 30 days
(or longer if you buy Packrat).
But no built-in diff facilities or changelog.
Git
Free version control system.
Easy to fork or roll back.
Install git software on your local computer.
Manage via RStudio.
15
Version control
.
......
In any non-trivial project, it is important to keep
track of versions of R code and documents.
Dropbox
Every version of your files for the last 30 days
(or longer if you buy Packrat).
But no built-in diff facilities or changelog.
Git
Free version control system.
Easy to fork or roll back.
Install git software on your local computer.
Manage via RStudio.
15
Version control
.
......
In any non-trivial project, it is important to keep
track of versions of R code and documents.
Dropbox
Every version of your files for the last 30 days
(or longer if you buy Packrat).
But no built-in diff facilities or changelog.
Git
Free version control system.
Easy to fork or roll back.
Install git software on your local computer.
Manage via RStudio.
15
Version control
.
......
In any non-trivial project, it is important to keep
track of versions of R code and documents.
Dropbox
Every version of your files for the last 30 days
(or longer if you buy Packrat).
But no built-in diff facilities or changelog.
Git
Free version control system.
Easy to fork or roll back.
Install git software on your local computer.
Manage via RStudio.
15
Outline
1 Getting help
2 Finding functions
3 Digging into functions
4 Writing functions
5 Debugging
6 Version control
7 My R workflow
16
R projects
Basic idea
Every paper, book or consulting report is a
project.
Every project has its own folder and R
workspace.
Every project is entirely scripted. That is, all
analysis, graphs and tables must be able to be
generated by running one R script. The final
report must be able to be generated by
processing one L
A
T
E
X file.
17
R projects
Basic idea
Every paper, book or consulting report is a
project.
Every project has its own folder and R
workspace.
Every project is entirely scripted. That is, all
analysis, graphs and tables must be able to be
generated by running one R script. The final
report must be able to be generated by
processing one L
A
T
E
X file.
17
R projects
Basic idea
Every paper, book or consulting report is a
project.
Every project has its own folder and R
workspace.
Every project is entirely scripted. That is, all
analysis, graphs and tables must be able to be
generated by running one R script. The final
report must be able to be generated by
processing one L
A
T
E
X file.
17
R projects
functions.R contains all non-packaged
functions used in the project.
main.R sources all other R files in the correct
order.
Data files provided by the client (or
downloaded from a website) are never edited.
All data manipulation is scripted in R (or
some other language).
Tables generated via xtable or texreg
packages.
Graphics in pdf format.
Report or paper in L
A
T
E
X pulls in the tables and
graphics.
18
R projects
functions.R contains all non-packaged
functions used in the project.
main.R sources all other R files in the correct
order.
Data files provided by the client (or
downloaded from a website) are never edited.
All data manipulation is scripted in R (or
some other language).
Tables generated via xtable or texreg
packages.
Graphics in pdf format.
Report or paper in L
A
T
E
X pulls in the tables and
graphics.
18
R projects
functions.R contains all non-packaged
functions used in the project.
main.R sources all other R files in the correct
order.
Data files provided by the client (or
downloaded from a website) are never edited.
All data manipulation is scripted in R (or
some other language).
Tables generated via xtable or texreg
packages.
Graphics in pdf format.
Report or paper in L
A
T
E
X pulls in the tables and
graphics.
18
R projects
functions.R contains all non-packaged
functions used in the project.
main.R sources all other R files in the correct
order.
Data files provided by the client (or
downloaded from a website) are never edited.
All data manipulation is scripted in R (or
some other language).
Tables generated via xtable or texreg
packages.
Graphics in pdf format.
Report or paper in L
A
T
E
X pulls in the tables and
graphics.
18
R projects
functions.R contains all non-packaged
functions used in the project.
main.R sources all other R files in the correct
order.
Data files provided by the client (or
downloaded from a website) are never edited.
All data manipulation is scripted in R (or
some other language).
Tables generated via xtable or texreg
packages.
Graphics in pdf format.
Report or paper in L
A
T
E
X pulls in the tables and
graphics.
18
R projects
functions.R contains all non-packaged
functions used in the project.
main.R sources all other R files in the correct
order.
Data files provided by the client (or
downloaded from a website) are never edited.
All data manipulation is scripted in R (or
some other language).
Tables generated via xtable or texreg
packages.
Graphics in pdf format.
Report or paper in L
A
T
E
X pulls in the tables and
graphics.
18
R projects
.
Advantages over Sweave and knitR
..
......
Keeps R and L
A
T
E
X files separate.
Multiple R files that can be run
separately.
Easier to rebuild sections (e.g., only
some R files).
Easier to collaborate.
19
R projects
.
Advantages over Sweave and knitR
..
......
Keeps R and L
A
T
E
X files separate.
Multiple R files that can be run
separately.
Easier to rebuild sections (e.g., only
some R files).
Easier to collaborate.
19
R projects
.
Advantages over Sweave and knitR
..
......
Keeps R and L
A
T
E
X files separate.
Multiple R files that can be run
separately.
Easier to rebuild sections (e.g., only
some R files).
Easier to collaborate.
19
R projects
.
Advantages over Sweave and knitR
..
......
Keeps R and L
A
T
E
X files separate.
Multiple R files that can be run
separately.
Easier to rebuild sections (e.g., only
some R files).
Easier to collaborate.
19
Figures without whitespace
R graphics have too much surrounding white
space for inclusion in reports.
The following function fixes the problem.
.
......
savepdf <- function(file, width=16, height=10)
{
fname <- paste("figs/",file,".pdf",sep="")
pdf(fname, width=width/2.54, height=height/2.54,
pointsize=10)
par(mgp=c(2.2,0.45,0), tcl=-0.4, mar=c(3.3,3.6,1.1,1.1))
}
savepdf("fig1")
plot(x,y)
dev.off()
20
Figures without whitespace
R graphics have too much surrounding white
space for inclusion in reports.
The following function fixes the problem.
.
......
savepdf <- function(file, width=16, height=10)
{
fname <- paste("figs/",file,".pdf",sep="")
pdf(fname, width=width/2.54, height=height/2.54,
pointsize=10)
par(mgp=c(2.2,0.45,0), tcl=-0.4, mar=c(3.3,3.6,1.1,1.1))
}
savepdf("fig1")
plot(x,y)
dev.off()
20
Figures without whitespace
R graphics have too much surrounding white
space for inclusion in reports.
The following function fixes the problem.
.
......
savepdf <- function(file, width=16, height=10)
{
fname <- paste("figs/",file,".pdf",sep="")
pdf(fname, width=width/2.54, height=height/2.54,
pointsize=10)
par(mgp=c(2.2,0.45,0), tcl=-0.4, mar=c(3.3,3.6,1.1,1.1))
}
savepdf("fig1")
plot(x,y)
dev.off()
20
Figures without whitespace
R graphics have too much surrounding white
space for inclusion in reports.
The following function fixes the problem.
.
......
savepdf <- function(file, width=16, height=10)
{
fname <- paste("figs/",file,".pdf",sep="")
pdf(fname, width=width/2.54, height=height/2.54,
pointsize=10)
par(mgp=c(2.2,0.45,0), tcl=-0.4, mar=c(3.3,3.6,1.1,1.1))
}
savepdf("fig1")
plot(x,y)
dev.off()
20
R with Makefiles
.
......
A Makefile provides instructions about how to
compile a project.
.
Makefile
..
......
# list R files
RFILES := $(wildcard *.R)
# pdf figures created by R
PDFFIGS := $(wildcard figs/*.pdf)
# Indicator files to show R file has run
OUT_FILES:= $(RFILES:.R=.Rdone)
all: $(OUT_FILES)
# RUN EVERY R FILE
%.Rdone: %.R functions.R
Rscript $< && touch $@
21
Makefiles for R & L
A
T
E
X
.
Makefile
..
......
# Usually, only these lines need changing
TEXFILE= paper
RDIR= ./figs
FIGDIR= ./figs
# list R files
RFILES := $(wildcard $(RDIR)/*.R)
# pdf figures created by R
PDFFIGS := $(wildcard $(FIGDIR)/*.pdf)
# Indicator files to show R file has run
OUT_FILES:= $(RFILES:.R=.Rdone)
# Indicator files to show pdfcrop has run
CROP_FILES:= $(PDFFIGS:.pdf=.pdfcrop)
all: $(TEXFILE).pdf $(OUT_FILES) $(CROP_FILES)
22
Makefiles for R & L
A
T
E
X
.
Makefile continued
..
......
# May need to add something here if some R files
# depend on others.
# RUN EVERY R FILE
$(RDIR)/%.Rdone: $(RDIR)/%.R $(RDIR)/functions.R
Rscript $< && touch $@
# CROP EVERY PDF FIG FILE
$(FIGDIR)/%.pdfcrop: $(FIGDIR)/%.pdf
pdfcrop $< $< && touch $@
# Compile main tex file
$(TEXFILE).pdf: $(TEXFILE).tex $(OUT_FILES) $(CROP_FILES)
latexmk -pdf -quiet $(TEXFILE)
23
The magic of RStudio
An RStudio project
can have an
associated Makefile.
Then building and
cleaning can be done
from within RStudio.
.
...... rstudio.com
24
Keep up-to-date
RStudio blog:
.
......
blog.rstudio.org
I blog about R (and other things):
.
......
robjhyndman.com/researchtips
R-bloggers:
.
......
www.r-bloggers.com
25
Keep up-to-date
RStudio blog:
.
......
blog.rstudio.org
I blog about R (and other things):
.
......
robjhyndman.com/researchtips
R-bloggers:
.
......
www.r-bloggers.com
25
Keep up-to-date
RStudio blog:
.
......
blog.rstudio.org
I blog about R (and other things):
.
......
robjhyndman.com/researchtips
R-bloggers:
.
......
www.r-bloggers.com
25
Keep up-to-date
RStudio blog:
.
......
blog.rstudio.org
I blog about R (and other things):
.
......
robjhyndman.com/researchtips
R-bloggers:
.
......
www.r-bloggers.com
25
Keep up-to-date
RStudio blog:
.
......
blog.rstudio.org
I blog about R (and other things):
.
......
robjhyndman.com/researchtips
R-bloggers:
.
......
www.r-bloggers.com
25
Keep up-to-date
RStudio blog:
.
......
blog.rstudio.org
I blog about R (and other things):
.
......
robjhyndman.com/researchtips
R-bloggers:
.
......
www.r-bloggers.com
25

You might also like