R is currently one of the most popular languages for data analysis among Python, MATLAB, and Java. It is highly capable of statistical analysis, simulation, and machine learning applications. It provides a user-friendly environment like MATLAB and Python while maintaining a structured programming style with robust analysis and visualization tools. It's very efficient to use R in generating deep learning network models because of its capacity to handle large datasets. As an open-source project, R has unlimited possibilities for future extensions to match specific needs for real-world applications.
Syntax:
# Basic in R
# Vector
v1 = c(1, -1, 1, -1)
v2 = c(2, -2, 2, -2)
v1+v2
[1] 3 -3 3 -3
v1*v2
[1] 2 2 2 2
# Matrix
matrix(0,3,3) # similar to zeros(3) in MATLAB
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 0 0 0
[3,] 0 0 0
v1 = c(1,-1,1)
v2 = c(2,-2,2)
v3 = c(3,-3,3)
cbind(v1,v2,v3) # ordering vector by column to a matrix
v1 v2 v3
[1,] 1 2 3
[2,] -1 -2 -3
[3,] 1 2 3
rbind(v1,v2,v3) # ordering vector by row
[,1] [,2] [,3]
v1 1 -1 1
v2 2 -2 2
v3 3 -3 3
# Linear system and solve()
A = matrix(c(1,-2,3, 2,4,2, 3,3,6),3,3)
b = c(1,-1,2)
A[1,3] # access element (1,3)
[1] 3
invA = solve(A) # inverse A
solve(A,b) # solve Ax = b to avoid matrix inversion
[1] 1.0000000 0.5000000 -0.3333333
invA %*% b # matrix multiplication using %*%
[,1]
[1,] 1.0000000
[2,] 0.5000000
[3,] -0.3333333
t(A) # transpose A
[,1] [,2] [,3]
[1,] 1 -2 3
[2,] 2 4 2
[3,] 3 3 6
# Define function in R
add = function(x1,x2) {
x1+x2
}
add(2,3)
[1] 5
# Conditions 1
a =1
b =2
if(a<b){
print("a<b")
}else {. # else must be in the same line with curly bracket
print("a>b")
}
[1] "a<b"
# Conditions 2
x = rnorm(1)
if(x>1){
print ("greater than 1")
}else if(x<1 & x > 0 ) {
print("less than 1")
}else{
print("less than zero")
}
[1] "greater than 1"
# while Loops
i = 1
while(i<10){
print(i)
i = i+1
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
#For loop
for(i in 1:10){
print(i)
}
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
# Homework 1
# Proof the law of large numbers
rsum = 0
rsum2 = 0
n1 = 0
n = 0
r = rnorm(1000)
for(i in r){
rsum = rsum+i
n = n+1
if(i < 1 & i > 0){
n1 = n1+1
}
}
# E(r)
rsum/n
[1] -0.02844646
# P(-1<x<1)
n1/n*2
[1] 0.672
Resources:
R's webpage
How to download and install R-studio (DDS):
R programming for Beginners (DDS):
Matrix Operations in R:
(To be continued)