The factor variables in R programming can be combined to form vectors and lists. Concatenation of factor type objects is not possible like the primitive concatenation operations, since they do not preserve the “factor” class of variables, which may lead to data ambiguity.
The class of any storage object in R programming can be fetched using sapply() method, which returns the data type or mode to which an object belongs.
Syntax: sapply(X, FUN)
Parameters:
X: A vector or an object
FUN: Function applied to each element of x
Method 1 : Using unlist() method
as.factor() method is used to specify a column vector in factor format rather than being numeric. The two input factors can be declared using the vector explicitly mapped to factors using this method.
unlist() method in R language is used to provide conversion from a list object to vector. It simplifies to produce a vector by preserving all components, that is the class of the elements is preserved.
Syntax:
unlist( x )
where x is a list or vector
This approach preserves the data and its corresponding levels. The data is concatenated in the order in with it is specified in the list() method.
Example:
R
fac1 <- as.factor ( c (1:5))
print ( "Factor1 : " )
print (fac1)
sapply (fac1,class)
fac2 <- as.factor ( c (8:10))
print ( "Factor2 : " )
print (fac2)
sapply (fac2,class)
combined <- unlist ( list (fac1,fac2))
print ( "Combined Factor : " )
print (combined)
sapply (combined,class)
|
Output
[1] “Factor1 : “
[1] 1 2 3 4 5
Levels: 1 2 3 4 5
[1] “factor” “factor” “factor” “factor” “factor”
[1] “Factor2 : “
[1] 8 9 10
Levels: 8 9 10
[1] “factor” “factor” “factor”
[1] “Combined Factor : “
[1] 1 2 3 4 5 8 9 10
Levels: 1 2 3 4 5 8 9 10
[1] “factor” “factor” “factor” “factor” “factor” “factor” “factor” “factor”
Factor type objects belonging to different data types can also be merged together in a singular list of the factor type elements. The levels are preserved in this merge.
Example:
R
fac1 <- as.factor ( letters [1:3])
print ( "Factor1 : " )
print (fac1)
sapply (fac1,class)
fac2 <- as.factor ( c (1:4))
print ( "Factor2 : " )
print (fac2)
sapply (fac2,class)
combined <- unlist ( list (fac1,fac2))
print ( "Combined Factor : " )
print (combined)
sapply (combined,class)
|
Output
[1] “Factor1 : “
[1] a b c
Levels: a b c
[1] “factor” “factor” “factor”
[1] “Factor2 : “
[1] 1 2 3 4
Levels: 1 2 3 4
[1] “factor” “factor” “factor” “factor”
[1] “Combined Factor : “
[1] a b c 1 2 3 4
Levels: a b c 1 2 3 4
[1] “factor” “factor” “factor” “factor” “factor” “factor” “factor”
Method 2 : Using factor() method
The levels() method of the specific factor vector can be used to extract the individual levels in the form of independent strings. It returns the number of elements equivalent to the length of the vector.
Syntax:
levels (fac-vec)[fac-vec]
Since, these levels are each returned as strings, therefore they belong to the same data type. Hence, they are combined now to form an atomic vector using the c() method.
Syntax:
c (vec1 , vec2)
where vec1 and vec2 are vectors belonging to same data type
Example:
R
fac1 <- factor ( letters [1:3])
print ( "Factor1 : " )
print (fac1)
sapply (fac1,class)
fac2 <- factor ( c (1:4))
print ( "Factor2 : " )
print (fac2)
sapply (fac2,class)
level1 <- levels (fac1)[fac1]
level2 <- levels (fac2)[fac2]
combined <- factor ( c ( level1,level2 ))
print ( "Combined Factor : " )
print (combined)
sapply (combined,class)
|
Output
[1] “Factor1 : “
[1] a b c
Levels: a b c
[1] “factor” “factor” “factor”
[1] “Factor2 : “
[1] 1 2 3 4
Levels: 1 2 3 4
[1] “factor” “factor” “factor” “factor”
[1] “Combined Factor : “
[1] a b c 1 2 3 4
Levels: 1 2 3 4 a b c
[1] “factor” “factor” “factor” “factor” “factor” “factor” “factor”
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
23 May, 2021
Like Article
Save Article