Find online courses made by experts from around the world.
Take your courses with you and learn anywhere, anytime.
Learn and practice realworld skills and achieve your goals.
The Comprehensive Programming in R Course is actually a combination of two R programming courses that together comprise a gentle, yet thorough introduction to the practice of generalpurpose application development in the R environment. The original first course (Sections 18) consists of approximately 12 hours of video content and provides extensive examplebased instruction on details for programming R data structures. The original second course (Sections 914), an additional 12 hours of video content, provides a comprehensive overview on the most important conceptual topics for writing efficient programs to execute in the unique R environment. Participants in this comprehensive course may already be skilled programmers (in other languages) or they may be complete novices to R programming or to programming in general, but their common objective is to write R applications for diverse domains and purposes. No statistical knowledge is necessary. These two courses, combined into one course here on Udemy, together comprise a thorough introduction to using the R environment and language for generalpurpose application development.
The Comprehensive Programming in R Course (Sections 18) presents an detailed, indepth overview of the R programming environment and of the nature and programming implications of basic R objects in the form of vectors, matrices, dataframes and lists. The Comprehensive Programming in R Course (Sections 914) then applies this understanding of these basic R object structures to instruct with respect to programming the structures; performing mathematical modeling and simulations; the specifics of objectoriented programming in R; input and output; string manipulation; and performance enhancement for computation speed and to optimize computer memory resources.
Not for you? No problem.
30 day money back guarantee.
Forever yours.
Lifetime access.
Learn on the go.
Desktop, iOS and Android.
Get rewarded.
Certificate of completion.
Section 1: Introduction and Overview of R  

Lecture 1 
Introduction to Comprehensive R Programming Course
Preview

01:52  
Lecture 2 
Introduction and Getting Started

14:54  
Lecture 3 
Getting Started and First R Session

14:53  
Lecture 4 
First R Session (part 2)
Preview

14:51  
Lecture 5 
First R Session (part 3)

15:08  
Lecture 6 
Matrices, Lists and Dataframes

14:58  
Lecture 7  15:02  
One of the great strengths of R is the user's ability to add functions. In fact, many of the functions in Rare actually functions of functions. The structure of a function is given below. Objects in the function are local to the function. 

Lecture 8 
Functions and Default Arguments

14:49  
Lecture 9 
More Examples of Functions (part 1)

14:17  
Lecture 10 
More Functions Examples (part 2)

12:00  
Lecture 11 
More Functions Examples (part 3)

11:12  
Lecture 12 
More Functions Examples (part 4)

12:25  
Lecture 13 
More Functions Examples (part 5)

10:19  
Lecture 14 
More Functions Examples (part 6)

07:31  
Section 2: What are Vector Data Structures in R ?  
Lecture 15 
Homemade ttest Exercise Solution

15:50  
Lecture 16 
Section 2 Exercise and Package Demonstrations

14:23  
Lecture 17  15:30  
A vector is a sequence of data elements of the same basic type. Members in a vector are officially called components. Nevertheless, they are often called elements. 

Lecture 18 
More Examples of Vectors

14:36  
Lecture 19 
Common Vector Operations and More

14:18  
Lecture 20 
Findruns Example and Vectors Exercises

14:12  
Section 3: More Discussion of Vector Data Structures  
Lecture 21 
VectorBased Programming Exercise Solution (part 1)

14:46  
Lecture 22 
Vector Exercise Solution (part 2) and Begin General Vector Discussion

16:05  
Lecture 23 
Continue General Vector Discussion
Preview

16:03  
Lecture 24 
More General Vector Examples

12:56  
Lecture 25 
More on Vectors and Vector Equality

16:40  
Lecture 26 
Extended Vector Example and Exercise

13:08  
Section 4: Finish Vectors and Begin Matrices  
Lecture 27 
Finish Vector Discussion

16:33  
Lecture 28 
VectorMaker Exercise Solutions

17:08  
Lecture 29  14:57  
Creating matrices The function matrix creates matrices. matrix(data, nrow, ncol, byrow) The data argument is usually a list of the elements that will fill the matrix. The nrow and ncolarguments specify the dimension of the matrix. Often only one dimension argument is needed if, for example, there are 20 elements in the data list and ncol is specified to be 4 then R will automatically calculate that there should be 5 rows and 4 columns since 4*5=20. The byrowargument specifies how the matrix is to be filled. The default value for byrow is FALSE which means that by default the matrix will be filled column by column. seq1 < seq(1:6) mat1 < matrix(seq1, 2) mat2 < matrix(seq1, 2, byrow = T) 

Lecture 30 
Filtering Matrices and More Examples

15:55  
Lecture 31 
Still More Matrices Examples

16:52  
Section 5: Finish Matrices and Begin Lists Discussion  
Lecture 32 
MinMerge Vector Exercise Solutions

15:15  
Lecture 33 
Game of Craps Exercise Solution
Preview

09:02  
Lecture 34 
Naming Matrix Rows and Columns

15:47  
Lecture 35  11:48  
A list is an R structure that may contain object of any other types, including other lists. Lots of the modeling functions (like t.test() for the t test or lm() for linear models) produce lists as their return values, but you can also construct one yourself: mylist < list (a = 1:5, b = "Hi There", c = function(x) x * sin(x)) 

Lecture 36 
Processing Text with Lists
Preview

14:47  
Lecture 37 
Applying Functions to Lists

17:32  
Lecture 38 
Vector and Matrix Exercise

04:52  
Section 6: Continue Lists Discussion  
Lecture 39 
Review Programming Exercises

16:08  
Lecture 40 
Finish Programming Exercise Review and Begin Discussing Lists

15:16  
Lecture 41 
List Data Structures General Discussion (part 2)
Preview

16:22  
Lecture 42 
List Data Structures General Discussion (part 3)

15:46  
Lecture 43 
Lists Data Structures General Discussion (part 4)

15:48  
Section 7: Details About Dataframe Data Structures  
Lecture 44  13:52  
Data Frames A data frame is more general than a matrix, in that different columns can have different modes (numeric, character, factor, etc.). This is similar to SAS and SPSS datasets. There are a variety of ways to identify the elements of a data frame . 

Lecture 45  15:08  
A data frame is a table, or twodimensional arraylike structure, in which each column contains measurements on one variable, and each row contains one case or sample (observation) with the corresponding values for each variable for that observation. 

Lecture 46 
Extracting Subdata Frames
Preview

16:20  
Lecture 47 
A Salary Survey Extended Example

16:00  
Lecture 48 
Merging Dataframes

14:29  
Lecture 49 
End Dataframes Discussion; Matrix Exercise

14:10  
Section 8: More Matrix and List Examples  
Lecture 50 
Covariance Matrix Exercise Solution

12:21  
Lecture 51  14:05  
Lists An ordered collection of objects (components). A list allows you to gather a variety of (possibly unrelated) objects under one name. Identify elements of a list using the [[]] convention. 

Lecture 52 
List Example: Tree Growth (part 2)

10:45  
Lecture 53  14:32  
Factors Tell R that a variable is nominal by making it a factor. The factor stores the nominal values as a vector of integers in the range [ 1... k ] (where k is the number of unique values in the nominal variable), and an internal vector of character strings (the original values) mapped to these integers. An ordered factor is used to represent an ordinal variable. R will treat factors as nominal variables and ordered factors as ordinal variables in statistical proceedures and graphical analyses. You can use options in the factor( ) and ordered( ) functions to control the mapping of integers to strings (overiding the alphabetical ordering). You can also use factors to createvalue labels. 

Lecture 54 
Factors: tapply() and split() Functions

15:58  
Lecture 55  10:58  
1. Creating factor variables Factor variables are categorical variables that can be either numeric or string variables. There are a number of advantages to converting categorical variables to factor variables. Perhaps the most important advantage is that they can be used in statistical modeling where they will be implemented correctly, i.e., they will then be assigned the correct number of degrees of freedom. Factor variables are also very useful in many different types of graphics. Furthermore, storing string variables as factor variables is a more efficient use of memory. To create a factor variable we use the factor function. The only required argument is a vector of values which can be either string or numeric. Optional arguments include the levels argument, which determines the categories of the factor variable, and the default is the sorted list of all the distinct values of the data vector. The labels argument is another optional argument which is a vector of values that will be the labels of the categories in thelevels argument. 

Lecture 56 
Pascal's Triangle Exercise

02:37  
Section 9: Programming in R Environments  
Lecture 57 
Pascal's Triangle Exercise Solution

10:27  
Lecture 58 
Begin Programming Structures

15:32  
Lecture 59  14:16  
R Programming Environment and Scope In order to write functions in a proper way and avoid unusual errors, we need to know the concept of environment and scope in R. R Programming Environment Environment can be thought of as a collection of objects (functions, variables etc.). An environment is created when we first fire up the R interpreter. Any variable we define, is now in this environment. The top level environment available to us at the R command prompt is the global environment called 

Lecture 60 
Nesting Multiple Environments

16:06  
Lecture 61 
Referencing Variables in Other Frames

14:53  
Lecture 62 
Writing to Global Variables and Recursion

14:05  
Lecture 63  19:32  
Anonymous Functions As remarked at several points in this book, the purpose of the R function inc < function(x) return(x+1) It instructs R to create a function that adds 1 to its argument and then assigns that function to 

Lecture 64 
Sorting Programs Exercise

07:08  
Section 10: Performing Math and Simulations  
Lecture 65 
Sorting Programs Exercise Solution (part 1)

12:30  
Lecture 66 
Sorting Programs Exercise Solution (part 2)

13:57  
Lecture 67 
Calculating a Probability
Preview

12:27  
Lecture 68 
Linear Algebra Operations

17:08  
Lecture 69  15:22  
Set OperationsDescription Performs set union, intersection, (asymmetric!) difference, equality and membership on two vectors. Usageunion(x, y) intersect(x, y) setdiff(x, y) setequal(x, y) is.element(el, set)Arguments x, y, el, set vectors (of the same mode) containing a sequence of items (conceptually) with no duplicated values.Details Each of 

Lecture 70 
Combinatorial Simulations (part 1)

10:40  
Lecture 71 
Combinatorial Simulations (part 2)

15:28  
Lecture 72 
Winning at Roulette Exercise

07:39  
Section 11: Object Oriented Programming (OOP) and S3 and S4 Classes  
Lecture 73 
Winning at Roulette Exercise solution

13:17  
Lecture 74  11:16  
Central to any objectoriented system are the concepts of class and method. A class defines the behavior of objects by describing their attributes and their relationship to other classes. The class is also used when selecting methods, functions that behave differently depending on the class of their input. Classes are usually organised in a hierarchy: if a method does not exist for a child, then the parent's method is used instead; the child inherits behaviour from the parent. 

Lecture 75 
OOP Example: lm() Function

10:32  
Lecture 76  09:34  
R's OO systems differ in how classes and methods are defined:


Lecture 77 
Using Inheritance

07:23  
Lecture 78 
Compressing Matrices Example (part 1)

14:37  
Lecture 79 
Compressing Matrices Example (part 2)

02:35  
Lecture 80 
Writing S3 Classes Exercise

02:35  
Lecture 81  14:11  
R's OO systems differ in how classes and methods are defined:


Lecture 82 
Implementing S4 Generic Functions

16:31  
Lecture 83 
Writing S4 Classes Exercise

03:41  
Lecture 84 
Live S3 and S4 Class Development

07:36  
Lecture 85 
Continue S3 Class Development

13:19  
Lecture 86 
Developing a Corresponding S4 Class

10:01  
Section 12: Input and Output  
Lecture 87 
Writing S3 Classes Exercise Solution

09:08  
Lecture 88 
Writing S4 Classes Exercise Solution

08:02 
Dr. Geoffrey Hubona held fulltime tenuretrack, and tenured, assistant and associate professor faculty positions at 3 major state universities in the Eastern United States from 19932010. In these positions, he taught dozens of various statistics, business information systems, and computer science courses to undergraduate, master's and Ph.D. students. He earned a Ph.D. in Business Administration (Information Systems and Computer Science) from the University of South Florida (USF) in Tampa, FL (1993); an MA in Economics (1990), also from USF; an MBA in Finance (1979) from George Mason University in Fairfax, VA; and a BA in Psychology (1972) from the University of Virginia in Charlottesville, VA. He was a fulltime assistant professor at the University of Maryland Baltimore County (19931996) in Catonsville, MD; a tenured associate professor in the department of Information Systems in the Business College at Virginia Commonwealth University (19962001) in Richmond, VA; and an associate professor in the CIS department of the Robinson College of Business at Georgia State University (20012010). He is the founder of the Georgia R School (20102014) and of RCourseware (2014Present), online educational organizations that teach research methods and quantitative analysis techniques. These research methods techniques include linear and nonlinear modeling, multivariate methods, data mining, programming and simulation, and structural equation modeling and partial least squares (PLS) path modeling. Dr. Hubona is an expert of the analytical, opensource R software suite and of various PLS path modeling software packages, including SmartPLS. He has published dozens of research articles that explain and use these techniques for the analysis of data, and, with software codevelopment partner Dean Lim, has created a popular cloudbased PLS software application, PLSGUI.