7. Object Oriented Programming in R

Sahil Sahani
0


 7. Object Oriented Programming in R.

 7A)Write an R program to demonstrate oop concepts, the construction and use of S3 and S4 classes. 

S3 Classes: S3 classes are a simple and informal way of defining classes in R. They are often used for basic object-oriented programming. The key features of S3 classes include: 

 Informal Structure: S3 classes are more informal and flexible compared to S4 classes. They don't have a formal class definition.

Method Dispatch: Method dispatch in S3 is based on the class attribute of an object. Functions look at the class attribute to determine which method to use.

 Not Strictly Typed: S3 classes are not strictly typed. Functions designed for a particular class often work as long as the object has the required structure. 

S4 Classes: S4 classes are a more formal and structured way of defining classes in R. They provide a formal definition and are designed to support stricter object-oriented programming principles. The key features of S4 classes include: 

Formal Structure: S4 classes have a formal and structured definition, providing more control over the class structure and behavior.

Method Dispatch: Method dispatch in S4 is more formalized and can be explicitly specified, offering greater control over method selection. 

 Strictly Typed: S4 classes are more strictly typed, meaning that the structure of the objects is explicitly defined.

CODE:

    
#List creation with its attributes name and roll no 
a=list(name="sahil",Roll_no=38)
b=list(name="sahil",Roll_no=47)

#defining a class "Student"
class(a)="Student"
class(b)="Student"

#creation of object
a
b
library(sloop)
otype(a)
otype(b)

#create s4 object 
# setClass() command is used to create s4 class
# the new() function is used to create an object in s4 class.
# In this function we will pass the class name as
# well as the value for slots

# function setclass() command used to create 
# s4 class containing list oslotsFromS3()

setClass("Student",slots =list(name="character",Roll_no="numeric"))

# new keyword used to create object of class 'Student'
c=new("Student",name="omji",Roll_no=48)
d=new("Student",name="altaf",Roll_no=63)

#calling object
c
otype(c)
    

OUTPUT :

$name
[1] "sahil"

$Roll_no
[1] 38

attr(,"class")
[1] "Student"
$name
[1] "sahil"

$Roll_no
[1] 47

attr(,"class")
[1] "Student"
[1] "S3"
[1] "S3"
An object of class "Student"
Slot "name":
[1] "omji"

Slot "Roll_no":
[1] 48

[1] "S4"
    

 7B) Write an R program to define reference class and operation on them.

CODE:

#Reference class is an improvement over s4 class
# here the methods belogs to the classes
# these are the much similar to object-orinted classes
# of the othelanguage

# defining a Reference class is similar to defining s4 classes
# we use setRefClass() instead of setClass() and 
# "Field" instead of "slots"
library(methods)
#setRefClass returns a generator 
movies =setRefClass("movies",fields = list(name="character",leadActor="character",
                                           rating="numeric"))
# now we can use the generator to create objects
movielist=movies(name="Iron man",leadActor="Robert Downey Jr",rating=7)
movielist
    

OUTPUT :

Reference class object of class "movies"
Field "name":
[1] "Iron man"
Field "leadActor":
[1] "Robert Downey Jr"
Field "rating":
[1] 7
    

Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.
Post a Comment (0)