1. a Taste of R Programming
Kyle Akepanidtaworn,
LSESU Data Science
Society
2. About Me
• Founder and President of LSESU Data Science Society
(2016)
• A General Course Student at LSE studying Econ & Stats
• Former Big Data Intern at IMC Institute, Thailand
• Former Teaching Assistant at Wesleyan University
• Former Quantitative Consultant for the Connection in the
course “intro to statistical consulting“ at Wesleyan
• Programming & Stats Packages: R, Python, SPSS, SAS,
STATA
• Business Intelligence Tools: Tableau, Qilkview
• Linkedin: https://uk.linkedin.com/in/korkridakepan
3. 7 Quick Facts about R
• R is the highest paid IT skill (Dice.com
survey, January 2014)
• R most-used data science language after
SQL (O'Reilly survey, January 2014)
• R is used by 70% of data miners (Rexer
survey, October 2013)
• R is #15 of all programming languages
(RedMonk language rankings, January
2014)
• R growing faster than any other data
science language (KDNuggets survey,
August 2013)
• R is the #1 Google Search for Advanced
Analytics software (Google Trends, March
2014)
• R has more than 2 million users
worldwide (Oracle estimate, February
2012)
• http://blog.revolutionanalytics.com/2014/0
4/seven-quick-facts-about-r.html
4. What is R?
• Developed by Ross Ihaka and Robert
Gentleman (statistician)
• First appeared Aug 1993; 23 years ago
• Some capabilities of R include:
Software development
Data analysis and visualization
Polling, surveys of data miners
Shiny application development
Writing project report
Creating the HTML presentation
5. Data Science War: R vs. Python
Source: Which #superheroe are you?(#batman Vs. #Superman) == (#R Vs. #Python)?
8. Why Learn R?
Outstanding Graphs
Big Community!
Friendly to New Users and Non-programmers
Extremely Comprehensive
Flexible & Fun!
Open-source Language
Cross-Platform Compatibility
Advanced Statistical Language
9. • Facebook - For behavior analysis related to status
updates and profile pictures.
• Google - For advertising effectiveness and economic
forecasting.
• Twitter - For data visualization and semantic
clustering
• Microsoft - Acquired Revolution R company and use
it for a variety of purposes.
• Uber - For statistical analysis
• Airbnb - Scale data science.
• IBM - Joined R Consortium Group
• ANZ - For credit risk modeling
• HP
• Ford
• Novartis
• Roche
• New York Times - For data visualization
• Mckinsey
• BCG
• Bain
Companies Using R
10. Installation Guide
1. Go to https://cran.r-project.org/ (The Comprehensive R Archive Network)
2. Choose the platform (either Windows or Mac) that suits you
3. Follow the installation instruction…nothing tricky here
4. Download R-Studio, which is an add-on user interface of R programming.
https://www.rstudio.com/
12. Remark
I encourage everyone to follow the latest development of R programming via R-Bloggers,
CRAN R, and R Studio websites. There are always a tremendous number of developers
who help ease the analysis task for the R users.
13. A Transition from Microsoft Excel to R?
• Peter Flom, Independent statistical consultant for researchers in behavioral, social and
medical sciences, has a compelling argument why Excel is such an undervalued tool for data
analysis.
• Excel isn’t undervalued as a tool for statistical analysis. If anything, it’s overvalued as such a
tool.
• Most competent analysts do not use Excel, not because it’s too easy, but other analytical tools
have more statistical capabilities.
• The default graphs in Excel are awful…other visualization tools outperform Microsoft Excel.
• Learning statistics in Excel sometimes gives an imaginary idea about data analysis. Doing
good statistics requires rigorously intensive training.
• Excel cannot handle big data. If you are dealing with more than 1+ million data points, you
need to seek help from R or Python.
• It makes it harder than other programs to check the assumptions we made in analysis.
15. Teaching Outline
Chapter 1: R in Point-and-Click
• Rcommander
• Menu in Rcommander
• R vs. STATA vs. IBM SPSS
• Why is Coding Critical?
Chapter 2: Basics of R Programming
• Basic and Complex Numerical Operations
• R Basic Data Types
Numeric
Integer
Complex
Logical
Character
Chapter 2: Basics of R (Cont’)
• Matrix
• Vector
• List
• Data Frame
• For-Loop
• Writing your functions
Chapter 3: R for Data Science
• Using External Data
• Exploratory Data Analysis (EDA)
• Predictive Modelling
Linear Regression
Classification
Clustering
17. R Commanders
• Enables analysts to access a
selection of commonly-used R
commands.
• Serves the important role of helping
users to implement R commands
and develop their knowledge and
expertise in using the command line.
• Comes with a number of plugins
available that provide direct access
to R packages.
22. Comparing the statistical capabilities of
software packages
• A statistical consultant known only as "Stanford PhD" has put together a table comparing the
statistical capabilities of the software packages R, Matlab, SAS, Stata and SPSS.
23. Comparing the statistical capabilities of
software packages
• For each of 57 methods (including techniques like "ridge regression", "survival analysis",
"optimization") the author ranks the capabilities of each software package as "Yes" (fully
supported), "Limited" or "Experimental".
• R and Matlab capabilities outperform those of SAS, STATA, and SPSS.
• Python, to the best of my knowledge, is not rich in statistical testing functions, so it lies
somewhere between R and SAS.
R 57
Matlab 57
SAS 42
Stata 29
SPSS 20
24. Should economists learn programming?
Of course! As Keynes said: "The master-economist must possess a rare combination of gifts ....
He must be mathematician, historian, statesman, programmer, philosopher -- in some degree.
He must understand symbols, write code, and speak in words. He must contemplate the
particular, in terms of the general, and touch abstract and concrete in the same flight of thought.
He must study the present in the light of the past for the purposes of the future. He must be able
to speak a common language with a computer scientist, a physicist and a sociologist. No part of
man's nature or his institutions must be entirely outside his regard. He must be purposeful and
disinterested in a simultaneous mood, as aloof and incorruptible as an artist, yet sometimes as
near to earth as a politician.”
--- Alex Teytelboym, Research Fellow in Economics at INET, University of Oxford
25. Why Coding? (I)
• As a social science student at LSE, managing, analyzing, and playing with data is an
important part of your work. (charts, curves, and trends etc.)
• Without programming skills, your work becomes more limited.
• Are you always relying upon manual calculations?
• Are you hand-collecting the data when you can write the code to easily retrieve data?
• Are you working with big data? Do you think excel will solve all data problems?
• With code, you can increase multiply by a huge factor the amount of work or calculations
you can perform, read millions of rows of data, try and find patterns or relations, compare
oil prices to Reddit traffic, or the natality rate to the average interest earned by investors in
Wyoming; whatever you can think of in a matter of minutes or hours and unleash your
imagination.
26. Why Coding? (II)
• Many experimental data requires you pull, clean and manipulate large sets of available
and incoming data to run experiments based on some economic question you're testing.
• If you can write code to do these tasks quickly and efficiently, you can iterate quickly
through a lot more hypotheses you might want to test.
• The cutting edge of economic research uses novel datasets and combines both theory
and empirics.
• Everyone in this room has different expectations of what they want to be able to do with
data. In social science, analytics is very important, while computer programming with
C++, Java, and similar languages are hardly necessary.
27. Everybody in this country
should learn to program
a computer… because it
teaches you how to think
- Steve Jobs, Co-Founder and CEO of Apple Inc. (1995 -2011)
28. R QuintessenceThe most disastrous thing that you can ever learn is
your first programming language – Alan Kay
35. What are “Loops”?
• “Looping”, “cycling”, “iterating” or just replicating instructions is an old practice that
originated well before the invention of computers. It is nothing more than automating a
multi-step process by organizing sequences of actions or ‘batch’ processes and by
grouping the parts that need to be repeated.
• All modern programming languages provide special constructs that allow for the repetition
of instructions or blocks of instructions.
• Broadly speaking, there are two types of these special constructs or loops in modern
programming languages. Some loops execute for a prescribed number of times, as
controlled by a counter or an index, incremented at each iteration cycle. These are part of
the for loop family.
• On the other hand, some loops are based on the onset and verification of a logical
condition. The condition is tested at the start or the end of the loop construct. These
variants belong to the while or repeat family of loops, respectively.
37. Functions (I)
• Functions are used to logically break our code into simpler parts which become easy to
maintain and understand.
• It's pretty straightforward to create your own function in R programming.
38. Functions (II)
• Conceptually, given some inputs of x, we perform some computation to get the new
output.
• Some commonly known functions are mean, median, square root and summation etc.
41. Functions (V)
• Writing functions should spring to your
mind when you want to write your own
chunk of codes and automate codes
easily.
• Creating your own functions begs some
imagination and efficient coding skill.
• Please revisit the workshop file for
example in action!
• Peace of mind: a vast community of R
developers around the world collaborates
in providing R useful packages, which
saves us a lot of time and effort.
• As you progress in data analysis with R,
finding the right packages may provide a
shortcut for your research project.
44. Packages are collections of R functions, data, and
compiled code in a well-defined format. The directory
where packages are stored is called the library.
- Quick-R
45. R for Data ScienceWithout data, you’re just another person with an opinion
46. How to Import the Data
Importing your data into R – R Tutorials by R-Bloggers
47. “The simple graph has brought more information to the
data analyst’s mind than any other device.”
- John Tukey
48. R for Data Science: Data Visualization
• R has several systems for making
graphs, but ggplot2 is one of the most
elegant and most versatile. ggplot2
implements the grammar of graphics,
a coherent system for describing and
building graphs. With ggplot2, you can
do more faster by learning one system
and applying it in many places.
• If you’d like to learn more about the
theoretical underpinnings of ggplot2
before you start, I’d recommend
reading “The Layered Grammar of
Graphics”,
http://vita.had.co.nz/papers/layered-
grammar.pdf.
66. R Studio Tips and Tricks
These are not exactly coding tricks, but rather ways to make your life easier using key
commands.
• The up arrow on your keyboard will allow you to scroll up through your past commands
• The tab key on your keyboard will help you (particularly in RStudio) by offering ways to
finish your code.
• When working within a .R or .Rmd file, you can put your cursor on a line and hit Cntrl +
Enter to get the code to execute in the Console. (On a mac, Command + Enter.)
• If you get stuck with some syntax (usually, mismatched parentheses or quotes), the R
Console will change from the > at the beginning of the line (which means it is waiting for a
new command) to the + at the beginning of the line (which means it is waiting for you to
finish a command). To get out, hit the Escape key.
67. Tearable Panes
Tearable panes are anything but terrible. This feature allows users to tear off data view
panes and source panes facilitating the use of multiple screens.
68. Command History
In the console it is possible to scroll through the command history by clicking Ctrl/Cmd and ↑.
The command history will be filtered as code is typed into the console:
69. History Pane
The history pane shows a searchable list of commands that have been run. Commands can
be written to the source pane or the console. No more copy and paste from the console to a
script!
70. Rename in Scope
This feature makes it easy to rename all instances of a variable. The tool is context aware;
changing ‘m’ to ‘m1’ won’t change ‘mtcars’ to ‘m1tcars’.
71. Gallery and Satellite View in Notebooks
A new feature built into R Notebooks, a code chunk that produces multiple plots will produce
a gallery. The plots can be viewed by toggling between thumbnails. The gallery can be
expanded into a new satellite window for closer inspection.
72. Code Outline
Save time scrolling with the code outline. This feature works for R Notebooks and traditional
R scripts. In R Notebooks sections are delimited by the R Markdown headers. In R scripts
sections are delimited by section comments (Try Code -> Insert Section).
73. Code Snippets
Code snippets are a shortcut to insert common boilerplate code. For instance, type fun and
then Tab to insert the skeleton code for a function definition. Then hit Tab to replace the
necessary components. In addition to a rich set of defaults, custom code snippets can also
be created.
74. File Navigation
Many people know of RStudio’s rich set of tab complete options for functions and function
arguments. Tab complete can also help find files and remove the hassle of writing out long
path locations. Hit tab in between two double quotes (“ “) to open a file explorer.
75. Jump To Function Definition
Want to dig into the innards of a function? With the cursor on a function press F2 to jump to
the function definition, even for functions in a package.
77. Further Resources
R Language
Advanced R: http://adv-r.had.co.nz/
Bioconductor: https://www.bioconductor.org/
CRANberries:
http://dirk.eddelbuettel.com/cranberries/
MRAN:
https://mran.revolutionanalytics.com/
rOpenSci: https://ropensci.org/
R Project: https://www.r-project.org/
The R Journal: https://journal.r-project.org/
R Community
R Consortium: https://www.r-consortium.org/
R Weekly: https://rweekly.org/
Data Sciences
Apache Hadoop: http://hadoop.apache.org/
KDnuggets: http://www.kdnuggets.com/
R for Data Science: http://r4ds.had.co.nz/
sparklyr: http://spark.rstudio.com/
SparkR:
https://spark.apache.org/docs/latest/sparkr.h
tml
Tessera: http://tessera.io/
78. Further Resources
Blogs
RStudio Blog: https://blog.rstudio.org/
BLOGR: https://drsimonj.svbtle.com/
Mad (Data) Scientist:
https://matloff.wordpress.com/
R Bloggers: https://www.r-bloggers.com/
R Consortium Blog: https://www.r-
consortium.org/news/blog
Revolutions Blog:
http://blog.revolutionanalytics.com
rOpenSci Blog: https://ropensci.org/blog/
Simply Statistics: http://simplystatistics.org/
Statistical Modeling, Causal Inference, and Social
Science: http://andrewgelman.com/
StatsBlogs: http://www.statsblogs.com/
Win-Vector Blog: http://www.win-vector.com/blog/
Statistics
Journal of Statistical Software:
https://www.jstatsoft.org/index
Forecasting: principles and practice:
https://www.otexts.org/fpp
From Algorithms to Z-Scores:
http://heather.cs.ucdavis.edu/~matloff/132/PLN/P
robStatBookW16ECS132.pdf
Statistical Foundations of Machine Learning:
https://www.otexts.org/book/sfml
The Elements of Statistical Learning:
http://statweb.stanford.edu/~tibs/ElemStatLearn/p
rintings/ESLII_print10.pdf
80. Udemy R Courses
• Another company is Udemy. While they do not offer video + interactive sessions like DataCamp
• They do offer extensive video lessons, covering some other topics in using R and learning statistics.
• The Comprehensive Programming in R Course (25 Hours of video)
• Graphs in R (ggplot2, plotrix, base R) – Data Visualization with R Programming Language (5 Hours of video)
• Linear Mixed-Effects Models with R (11 Hours of video)
• Multivariate Data Visualization with R (7 Hours of video)
• Applied Multivariate Analysis with R (13 Hours of video)
• More Data Mining with R (11 Hours of video)
• Text Mining, Scraping and Sentiment Analysis with R (4 Hours of video)
• R Programming for Simulation and Monte Carlo Methods (12 Hours of video)
• Programming Statistical Applications in R (12 Hours of video)
• Comprehensive Linear Modeling with R (15 Hours of video)
• Bayesian Computational Analyses with R (12 Hours of video)
• Time Series Analysis and Forecasting in R (3 Hours of video)