How to assign column names based on existing row in R DataFrame ?
Last Updated :
30 Apr, 2021
In this article, we will discuss how assign column names or headers to a DataFrame based on rows in R Programming Language.
unlist() method in R is used to simulate the conversion of a list to vector. It simplifies to produce a vector by preserving all components. Every element is the same as each of the values in that corresponding row. The as.character() method is then applied successively over this list, to deparse each of its elements individually. The as.character attempts to coerce its argument to the character type. The existing row is, therefore, assigned as a header of the data frame. The corresponding row can then be deleted or retained into the data frame.
Syntax:
unlist(list)
Example:
R
data_frame = data.frame (col1= c (1,2,3,-4),
col2= c (8,9,5,10),
col3= c (0,2,3,5))
print ( "Original Data Frame" )
print (data_frame)
colnames (data_frame) <- as.character ( unlist (data_frame[2,]))
data_frame = data_frame[-2, ]
print ( "Modified Data Frame" )
print (data_frame)
|
Output
[1] "Original Data Frame"
col1 col2 col3
1 1 8 0
2 2 9 2
3 3 5 3
4 -4 10 5
[1] "Modified Data Frame"
2 9 2
1 1 8 0
3 3 5 3
4 -4 10 5
Method 2 : Using lapply() method
The lapply() function in R, returns a list of the same length as an input list object, each element of which is the result of the application of FUN to each of the corresponding elements of the list over which it is applied.
Syntax: lapply(X, FUN, …)
Parameter :
- X – The data frame or matrix
- FUN – Any function in R can be specified as the second argument where in both in-built and user defined functions can be used.
If we use as.character as the FUN, then the variables of the data frame, all the variables of the data frame will be converted to the class “character”. The header or colnames can then be assigned to a particular row of the data frame.
Example
R
data_frame = data.frame (col1= c (1,-2,3,-4),
col2= c (8,9,5,10),
col3= c (0,2,3,5),
col4= c (1.5,4.5,6.7,8.9))
print ( "Original Data Frame" )
print (data_frame)
data_frame[] <- lapply (data_frame, as.character)
colnames (data_frame) <- data_frame[4, ]
print ( "Modified Data Frame" )
print (data_frame)
|
Output
[1] "Original Data Frame"
col1 col2 col3 col4
1 1 8 0 1.5
2 -2 9 2 4.5
3 3 5 3 6.7
4 -4 10 5 8.9
[1] "Modified Data Frame"
-4 10 5 8.9
1 1 8 0 1.5
2 -2 9 2 4.5
3 3 5 3 6.7
4 -4 10 5 8.9
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...