Machine Learning with R Tutorial

Introduction to R


  • R is a programming language and software environment used for statistical analysis, data modeling,
    graphical representation and reporting.
  • R is best tool for software programmers, statisticians and data miners who looking forward for to
    easily manipulate and present data in compelling ways.
  • R was first created and developed by Ross Ihaka and Robert Gentleman in the University of Auckland
    New Zealand in 1993.
  • The version released in 1995
  • It is an open source project and free software
  • R is an implementation of the S Programming language
  • It is mostly used in the field of statisticians, data miners, data analysis
  • R is a programming language and software environment for statistical computing and graphics supported by the R Foundation.
  • Other similar languge such as APL and MATLAB

Application of R:

  • Weather Service uses R to predict severe flooding.
  • Social networking companies are using R to monitor their user experience.
  • Newspapers companies are using R to create infographics and interactive data journalism applications.
  • R is adopted by the major companies because their data scientists prefer to use it.

Features of R language:

  • R is simple and effective programming language which has been well-developed, as well as R is data
    analysis software.
  • R is a well – designed, easy and effective language that has the concepts of conditionals, looping,
    user-defined recursive procedures and various I/O facilities.
  • R has a large, consistent and incorporated set of tools used for data analysis.
  • R contains suite of operators for different types of calculations on arrays, lists and vectors.
  • R provides highly extensible graphical techniques.
  • R graphical techniques for data analysis output either directly display to the computer, or can be
    print on paper.
  • R has an effective data handling and storage facility.
  • R is an online vibrant community.
  • R is free, open source, powerful and highly extensible.

Installation of R


  • If you are using a Linux system, then it is possible that your package manager should have R available
    within,though perhaps not the latest version.
  • For every person else, for installing R you must have to go to http://www.r-project.org first.
  • Do not get deceived by the slightly outmoded website; it does not reflect on the quality of R.
  • Click the link which says “download R” within the “Getting Started” pane at the foot of that page.
  • Once you have selected a mirror close to you, choose a link within the “Download and Install R” pane
    at the peak of the page (according to your operating system).
  • After that there is 1 or 2 Operating System specific clicks which you must have to make to get to the
    download.

Windows Users:

  • If you are a Windows user who does not usually like clicking, there is a naughty shortcut for
    getting the setup file at one go.
  • Just go to
http://<CRAN MIRROR>/bin/windows/base/release.html and if you are smart enough it search it 
based on your choice then go to:
https://cran.r-project.org/bin/windows/base/and save it in the local disk.
  • R is compiles and runs on a wide variety of UNIX platforms, Windows and Mac OS.
  • When it is a Windows installer i.e. having .exe as extension; having name “R-version-win.exe”,
    you can just double click and run the installer allowing the default settings.
  • If you are having Windows as 32-bit version, it installs the 32-bit version.
  • But if you are having windows as 64-bit, then it will install 32-bit and 64-bit versions both.

For Linux Users:

  • If you are a Linux user, then there is a fast and easy command used in Linux which can be used to install R.
  • The yum command is used for installing like this: $ yum install R
  • For Ubuntu Linux or other Debian-related OSs, a more direct method is: $ apt-get install r-base

Choosing proper IDE:

  • If you are thinking of using R under Windows or Mac OS, then many graphical user interface (GUI) are
    available which will be having a command-line interpreter that facilities displaying plots and help
    pages and a fundamental text editor also.
  • It is perfectly achievable to use R in this way, but for serious coding you will have to least want to use a more powerful text editor.

There are numerous text editors for programmers.

  • R studio is one of the popular R-programming specific IDE frequently used IDE for R.
  • Another is Emacs + ESS.
  • Although Emacs call itself as text editor, but 36 years (still developing) of development have
    positioned itself with an unparalleled number of features.
  • It can be available from
http://www.gnu.org/software/emacs/.

Basic Syntax


Essential program of Hello World:

Once you have setup the earth for R, it is anything but difficult to begin R reassure by essentially

composing the order made reference to underneath at your direction provoke:

Precedent:

> myString <-"Hi, World!"
> print ( myString)
[1] "Hi, World!"
or then again
> myString="Hello, World!"
> print(myString)
[1] "Hi, World!"

R Script File:

  • Usually, you will do your programming by composing your projects in content records and after that you executethose contents at your direction incite with the assistance of R mediator called Rscript.
  • So we should begin with composing following code in a content record called test.R

Precedent:

# My first program in R Programming
myString <-"Hi, World!"
print ( myString)
or on the other hand
myString ="Hello, World!"
print ( myString)

Remarks:

Comments resemble helping content inside your R source code and these announcements get disregarded by the mediator while running your genuine program.

Single Line Comment:

The single line remark is composed with the beginning image ‘#’ in the start of the announcement as given underneath:

Precedent:

# My first program in R Programming

Multi-line Comment:

  • It is to be noticed that the strings while utilizing Multi-line remark ought to must be put inside eitherSingle statement or Double Quote.
  • R does not bolster multi-line remarks but rather you can play out a trap which is something as pursues…

Precedent:

“This is a demo for multi-line remarks and it ought to be put inside either a single OR twofold statement”

Data Types in R


  • Use distinctive variables to store diverse information.
  • Variables are spared memory territories to store regards.
  • This suggests that, when you make a variable you hold some space in memory.

Here is the summary of the extensive number of data types given by R:

  1. Numeric
  2. Integer
  3. Complex
  4. Logical
  5. Character

1.Numeric

Accentuation:

a=12.3
b=5
c=999

Point of reference:

v = 23.5
print(class(v))

yield:

[1] "numeric"

2.Integer

Dialect structure:

a=2L
b=34L
c=0L

Display:

v =2L
print(class(v))

yield:

[1] "number"

3.Complex

Dialect structure:

a=3 + 2i

Display:

v =2+5i
print(class(v))

yield:

[1] "complex"

4.Logical

Dialect structure:

a=TRUE
b=FALSE

Demonstrate:

v =TRUE
print(class(v))

yield:

[1] "sensible"

5.Character

Dialect structure:

a='a'
b="good"
c="TRUE"
d='23.4'

Demonstrate:

v ="TRUE"
print(class(v))

yield:

[1] "character"

6.Raw

Dialect structure:

"Hello" is secured as 48 65 6c 6f

Point of reference:

v=charToRaw("Hello")
print(class(v))

yield:

[1] "unrefined"

Vectors:

When you have to make vector with more than one segment, you ought to use c() work which infers

to join the segments into a vector.

Display:

# Create a vector.
apple =c('red','green',"yellow")
print(apple)
# Get the class of the vector.
print(class(apple))

yield:

[1] "red" "green" "yellow"
[1] "character"

Records

A list is a R-challenge which can contain an extensive variety of sorts of segments inside it like vectors,

works and altogether another summary inside it.

Demonstrate:

# Create a once-over.
list1=list(c(2,5,3),21.3,sin)
# Print the once-over.
print(list1)

yield:

[[1]]
[1] 2 5 3
[[2]]
[1] 21.3
[[3]]
work (x) .Primitive("sin")

Grids:

  • A grid is a two-dimensional rectangular enlightening gathering.
  • It can be made using a vector commitment to the system work.

Point of reference:

# Create a lattice.
M = lattice( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
print(M)

yield:

[,1] [,2] [,3]
[1,] "an" "a" "b"
[2,] "c" "b" "a"

Data Variables


  • Variable is a name of the memory area where information is put away.
  • Once a variable is put away that implies a space is assigned in memory.
  • Variable otherwise called identifier and used to hold esteem.
  • In R, we don’t have to indicate the sort of factor since R is a sort derive dialect andsufficiently brilliant to get variable sort.
  • Variable names can be a gathering of the two letters and digits, yet they need in any case a letteror on the other hand an underscore.

*Note:

  • Variable name ought not be a catchphrase.
  • Remember that factors are case-touchy

Variable Assignment:

  • The factors can be allocated values utilizing leftward, rightward and equivalent to administrator.
  • The estimations of the factors can be printed utilizing print() or feline() work.
  • The feline() work joins various things into a persistent print yield.

Model:

# Assignment utilizing rise to administrator.
var.1 = c(0,1,2,3)
# Assignment utilizing leftward administrator.
var.2 <-c("learn","R")
# Assignment utilizing rightward administrator.
c(TRUE,1) - > var.3
print(var.1)
feline (var.2 ,"\n")
feline (var.3 ,"\n")

Discovering Variables:

  • To know every one of the factors at present accessible in the workspace we utilize the ls() work.
  • Also the ls() capacity can utilize examples to coordinate the variable names.

Sentence structure:

ls()
Precedent:
a=5
b=4
c=3
print(ls())
yield:
"a" "b" "c"

Information Type of a Variable:

  • In R, a variable itself isn’t pronounced of any information type, rather it gets the information sort of theR – question appointed to it.
  • So R is known as a progressively composed dialect, which implies that we can change a variable’s information typeof a similar variable over and over when utilizing it in a program.

Model:

var_x ="Hello"
print(class(var_x))
var_x =34.5
print(class(var_x))
var_x =27L
print(class(var_x))
var_x ="Hello"
print(class(var_x))
var_x =34.5
print(class(var_x))
var_x =27L
print(class(var_x))

yield:

“character”

“numeric”

“whole number”

R Operators


  • An administrator is an image that advises the compiler to perform particular numerical or sensiblecontrols.
  • R dialect is wealthy in worked in administrators

Sorts of Operators:

  • Arithmetic Operators(+,- ,*,/,%%,%/%,^)
  • Relational Operators(>,<,>=,<=,==,!=)
  • Logical Operators(&,|,!,&&,||)
  • Assignment Operators(<-or = or <<-,- > or = or – >>)
  • Miscellaneous Operators(:,%in%,%*%)

1.Arithmetic Operators(+,- ,*,/,%%,%/%,^)

Example:1

a=5
b=3
print(a+b)

Example:2

a=5
b=3
print(a-b)

Example:3

a=5
b=3
print(a*b)

Example:4

a=5
b=3
print(a/b)

Example:5

a=5
b=3
print(a%%b)

Example:6

a=5
b=3
print(a%/%b)

Example:7

a=5
b=3
print(a^b)

2.Relational Operators(>,<,>=,<=,==,!=)

Example:1

> print(5>4)
[1] TRUE
> print(4>5)
[1] FALSE
> print(5>5)
[1] FALSE

Example:2

> print(4<5)
[1] TRUE
> print(6<5)
[1] FALSE
> print(5<5)
[1] FALSE

Example:3

> print(5>=4)
[1] TRUE
> print(5>=5)
[1] TRUE
> print(5>=6)
[1] FALSE

Example:4

> print(5<=6)
[1] TRUE
> print(5<=5)
[1] TRUE
> print(6<=5)
[1] FALSE

Example:5

> print(5==5)
[1] TRUE
> print(5=="5")
[1] TRUE
> print(5==6)
[1] FALSE

Example:6

> print(5!=5)
[1] FALSE
> print(5!=6)
[1] TRUE

Example:7

> print(TRUE==TRUE)
[1] TRUE
> print("raja"=="Raja")
[1] FALSE

3.Logical Operators(&,|,!,&&,||)

Example:1

a=5
> b=4
> c=3
> print(a>b && a>c)
[1] TRUE
>
> print(a>b && a==c)
[1] FALSE
>
> print(a==b && a>c)
[1] FALSE
>
> print(a==b && a==c)
[1] FALSE
or then again
> print(TRUE && TRUE)
[1] TRUE
>
> print(TRUE && FALSE)
[1] FALSE
>
>
> print(FALSE && TRUE)
[1] FALSE
>
> print(FALSE && false)
[1] FALSE

Example:2

a=5
> b=4
> c=3
> print(a>b || a>c)
[1] TRUE
>
> print(a>b || a==c)
[1] TRUE
>
> print(a==b || a>c)
[1] TRUE
>
> print(a==b || a==c)
[1] FALSE
or then again
> print(TRUE && TRUE)
[1] TRUE
>
> print(TRUE && FALSE)
[1] TRUE
>
>
> print(FALSE && TRUE)
[1] TRUE
>
> print(FALSE && false)
[1] FALSE

Example:3

> print(! 5>4)
[1] FALSE
> print(! 5==4)
[1] TRUE
>
>
> print(! Genuine)
[1] FALSE
> print(! FALSE)
[1] TRUE
>
> print(! (5>4 && 5>3))
[1] FALSE

Example:4

> a=3
> b=2
> print(a and b)
[1] TRUE
> a=0
> b=0
> print(a and b)
[1] FALSE
>
> print(5 and 3)
[1] TRUE
>
> print(3 and 3)
[1] TRUE
> print(4 and 3)
[1] TRUE

Example:5

> a<-4
> b<-3
> print(a | b)
[1] TRUE
> a<-4
> b<-0
> print(a | b)
[1] TRUE
> a<-0
> b<-3
> print(a | b)
[1] TRUE
> a<-0
> b<-0
> print(a | b)
[1] FALSE

4.Assignment Operators(<-or = or <<-,- > or = or – >>)

Example:1

> a=5
> print(a)
[1] 5
>
>
> a<-4
> print(a)
[1] 4
>
> a<<-6
> print(a)
[1] 6
>
>
> 5->b
> print(b)
[1] 5
>
> 7->>b
> print(b)
[1] 7

5.Miscellaneous Operators(:,%in%,%*%)

Example:1

v <-2:8
print(v)
yield:
[1] 2 3 4 5 6 7 8

Example:2

v1 <-8
v2 <-12
t <-1:10
print(v1 %in% t)
print(v2 %in% t)

yield:

[1] TRUE
[1] FALSE

Example:3

data<-10
v<-2:8
print(data %*% v)

yield:

[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 20 30 40 50 60 70 80

Precedent:

M = grid( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
t = M %*% t(M)
print(t)

yield:

[,1] [,2]
[1,] 65 82
[2,] 82 117

Clarification:

> M = grid( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)
> print(t(M))
[,1] [,2]
[1,] 2 1
[2,] 6 10
[3,] 5 4
>
> print(M)
[,1] [,2] [,3]
[1,] 2 6 5
[2,] 1 10 4

R Vectors


  • Vectors are the most essential R information objects and there are six kinds of nuclear vectors.
  • They are legitimate, whole number, twofold, complex, character and crude.

Vector Creation:

1.Single Element Vector

Even when you compose only one incentive in R, it turns into a vector of length 1 and has a place with one of the above vector types.

Example:1

# Atomic vector of sort character.
print("program");
# Atomic vector of sort twofold.
print(99.5)
# Atomic vector of sort whole number.
print(100L)
# Atomic vector of sort coherent.
print(TRUE)
# Atomic vector of sort complex.
print(5+7i)
# Atomic vector of sort crude.
print(charToRaw('hello'))

2.Multiple Elements Vector:

Using colon administrator with numeric information

Example:1

# Creating an arrangement from 5 to 13.
v <-5:13
print(v)
# Creating an arrangement from 6.6 to 12.6.
v <-6.6:12.6
print(v)
# If the last component determined does not have a place with the arrangement then it is 
disposed of.
v <-3.8:11.4
print(v)

Utilizing grouping (Seq.) administrator:

# Create vector with components from 5 to 9 increasing by 0.5.

Example:1

print(seq(5, 9, by = 0.5))
Utilizing the c() work:

The non-character esteems are pressured to character type on the off chance that one of the components is a character.

Example:2

# The intelligent and numeric qualities are changed over to characters.

Example:3

s <-c('apple','red',5,TRUE)
print(s)

3.Accessing Vector Elements:

Example:1

# Accessing vector components utilizing position.
t <-c("Sun","Mon","Tue","Wed","Thurs","Fri","Sat")
u <-t[c(2,3,6)]
print(u)
# Accessing vector components utilizing consistent ordering.
v <-t[c(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)]
print(v)
# Accessing vector components utilizing negative ordering.
x <-t[c(- 2,- 5)]
print(x)
# Accessing vector components utilizing 0/1 ordering.
y <-t[c(0,0,0,0,0,0,1)]
print(y)

Vector Manipulation:

Vector number juggling:

Two vectors of same length can be included, subtracted, duplicated or partitioned giving the outcome as a vector yield.

Model:

# Create two vectors.
v1 <-c(5,9,3,5,0,11)
v2 <-c(3,5,0,8,1,2)
# Vector expansion.
entirety <-v1+v2
print(sum)
# Vector subtraction.
sub<-v1-v2
print(sub.result)
# Vector duplication.
mul<-v1*v2
print(mult)
# Vector division.
div<-v1/v2
print(div)

Vector Element Recycling:

If we apply number juggling activities to two vectors of unequal length, at that point the components of the shorter vector are reused to finish the tasks.

Example:1

v1 <-c(3,8,4,5,0,11)
v2 <-c(4,11)
# V2 progresses toward becoming c(4,11,4,11,4,11)
add.result <-v1+v2
print(add.result)
sub.result <-v1-v2
print(sub.result)

Vector Element Sorting:

Elements in a vector can be arranged utilizing the sort() work.

Example:1

v <-c(3,8,4,5,0,11, - 9, 304)
# Sort the components of the vector.
sort.result <-sort(v)
print(sort.result)
# Sort the components in the switch arrange.
revsort.result <-sort(v, diminishing = TRUE)
print(revsort.result)
# Sorting character vectors.
v <-c("Red","Blue","yellow","violet")
sort.result <-sort(v)
print(sort.result)
# Sorting character vectors in turn around request.
revsort.result <-sort(v, diminishing = TRUE)
print(revsort.result)

Besant Technologies – Chennai & Bangalore Branch Locations

Besant Technologies - Velachery Branch
Plot No. 119, No.8, 11th Main road, Vijaya nagar,
Velachery, Chennai - 600 042
Tamil Nadu, India
Landmark - Reliance Digital Opposite Street
+91-996 252 8294 / 996 252 8293

Besant Technologies - Tambaram Branch
No.2A, 1st Floor, Duraisami Reddy Street,
West Tambaram, Chennai - 600 045
Tamil Nadu, India
Landmark - Near By Passport Seva
+91-970 725 0260

Besant Technologies - OMR Branch
No. 5/318, 2nd Floor, Sri Sowdeswari Nagar,
OMR, Okkiyam Thoraipakkam, Chennai - 600 097
Tamil Nadu, India
Landmark - Behind Okkiyampet Bus Stop,
+91-887 038 4333

Besant Technologies - Porur Branch
No. 180/84, 1st Floor, Karnataka Bank Building
Trunk Road, Porur,
Chennai - 600 116
Tamilnadu, India
Land Mark: Opposite to Gopalakrishna Theatre
+91-755 022 6990

Besant Technologies - Anna Nagar Branch
Plot No:1371, 28th street kambar colony,
I Block, Anna Nagar ,
Chennai - 600 040
Tamil Nadu, India
Landmark - Behind Reliance Fresh
+91-938 404 0493

Besant Technologies - T.Nagar Branch
Old No:146/2- New No: 48,
Habibullah Road,T.Nagar,
Chennai - 600 017
Tamil Nadu, India
Landmark - Opposite to SGS Sabha
+91-984 025 8377

Besant Technologies - Thiruvanmiyur Branch
22/67, 1st Floor,
North mada street, Kamaraj Nagar
Thiruvanmiyur, Chennai 600041
Tamil Nadu, India
Landmark - Above Thiruvanmiyur ICICI Bank
+91-938 404 0493

Besant Technologies - Siruseri Branch
No. 4/76, Ambedkar Street,
OMR Road, Egatoor, Navallur,
Siruseri, Chennai 600130
Tamil Nadu, India
Landmark - Near Navallur Toll Gate, Next to Yamaha Showroom
+91-7338 810 550

Besant Technologies - Maraimalai Nagar Branch
No.37, Ground Floor,
Thiruvalluvar Salai,
Maraimalai Nagar,Chennai 603209
Tamil Nadu, India
Landmark - Near to Maraimalai Nagar Arch
+91-979 123 7373

Besant Technologies - BTM Layout Branch
No 2, Ground floor,
29th Main Road, Kuvempu Nagar,BTM Layout 2nd Coming from Silkboard, take left at AXA company signal,
Stage, Bangalore - 560 076
Karnataka, India
Landmark - Next to OI Play School
+91-762 494 1772 / 74

Besant Technologies - Marathahalli Branch
No. 43/2, 2nd Floor, VMR Arcade,
Varthur Main Road, Silver Springs Layout,
Munnekollal, Marathahalli, Bengaluru - 560037
Karnataka, India
Landmark - Near Kundalahalli Gate Signal
+91-910 812 6341

Besant Technologies - Rajaji Nagar Branch
No. 309/43, JRS Ecstasy, First Floor,
59th Cross, 3rd Block, Bashyam Circle,
Rajaji Nagar, Bangalore - 560 010
Karnataka, India
Landmark - Near Bashyam Circle
+91- 734 916 0004

Besant Technologies - Jaya Nagar Branch
No. 2nd Floor,1575,11th Main Road,
4th T-Block, Pattabhirama Nagar, Jaya Nagar,
Bangalore-560041
karnataka, India
Land Mark: Opposite to Shanthi Nursing Home
+91-733 783 7626

Besant Technologies - Kalyan Nagar Branch
No.513, 4th Cross Rd
2nd Block, HRBR Layout, Kalyan Nagar,
Bangalore-560043
karnataka, India
Land Mark: Opposite to kalayan nagar Axis Bank
+91-938 404 0495

Besant Technologies - Electronic City Branch
No. 7, 3rd Floor, Ganga Enclave,
Neeladri Road, Karuna Nagar, Doddathoguru Village,
Electronics City Phase 1, Electronic City,
Bangalore - 560100, karnataka, India
Land Mark: Adjacent to HDFC Bank and State Bank Of India
+91-782 392 2180

Besant Technologies - Indira Nagar Branch
No.54, 1st Floor,
5th Main kodihalli,
Bengaluru, Karnataka 560008, India
Landmark: Behind Leela Palace Hotel,
+91-910 812 6339

Besant Technologies - HSR Layout Branch
Plot No. 2799 & 2800, 27th Main,
1st Sector, HSR Layout,
Bengaluru, Karnataka 560102, India
+91-733 783 7626

Besant Technologies - Hebbal Branch
No.29, 2nd Floor, SN Complex,
14th Main Road, E-Block Extention, Sahakara Nagar,
Bengaluru, Karnataka -560092, India
+91-938 404 0496