Replace contents of factor column in R dataframe
In this article, we are going to see how to replace the content of the factor column in the dataframe in R Programming Language.
Example 1: Replacing content of factor column
Initially, the factor column is converted to a character column using the explicit conversion of as.character() method in R. This converts the specified column to character type, which can contain duplicate element values, without all copies belonging to the same level.
This is followed by the replacement of the old cell value of this column with a new one. The column is then revered back again to factor type using as.factor() method.
The levels of the data frame column can be printed using the levels() method. If we display the levels before and after replacement, they will differ.
R
data_frame <- data.frame (col1 = factor ( c (1,2,1,5,2)),
col2 = factor ( c ( "a" , "b" , "a" , "c" , "d" ))
)
print ( "Original DataFrame" )
print (data_frame)
print ( "Original DataFrame Levels" )
print ( levels (data_frame$col1))
data_temp <- data_frame
data_temp$col1 <- as.character (data_frame$col1)
data_temp$col1[3] <- 4
data_temp$col1 <- as.factor (data_temp$col1)
print ( "Modified DataFrame" )
print (data_temp)
print ( "Modified DataFrame Levels" )
print ( levels (data_temp$col1))
|
Output:
Example 2: Replacing level of the factor column
The levels of the data frame can also be modified using the levels() method. The old level value can be compared using the data frame indexing method and then assigned a new value. All the occurrences of this level are changed to the new assigned level. The number of levels, in this case, remain same in number but change in value.
R
data_frame <- data.frame (col1 = factor ( c (1,2,1,5,2)),
col2 = factor ( c ( "a" , "b" , "a" , "c" , "d" ))
)
print ( "Original DataFrame" )
print (data_frame)
print ( "Original DataFrame Levels" )
print ( levels (data_frame$col2))
data_temp <- data_frame
levels (data_temp$col2)[ levels (data_temp$col2) == "a" ] <- "e"
print ( "Modified DataFrame" )
print (data_temp)
print ( "Modified DataFrame Levels" )
print ( levels (data_temp$col2))
|
Output:
Last Updated :
12 Dec, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...