- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Find the column name with the largest value for each row in an R data frame.
To find the column name that has the largest value for each row in an R data frame, we can use colnames function along with apply function.
For Example, if we have a data frame called df then we can find column name that has the largest value for each row by using the command as follows −
df$Largest_Column<-colnames(df)[apply(df,1,which.max)]
Example 1
Following snippet creates a sample data frame −
x1<-rnorm(20) x2<-rnorm(20) x3<-rnorm(20) df1<-data.frame(x1,x2,x3) df1
The following dataframe is created
x1 x2 x3 1 -0.305888032 1.42530072 -0.60397460 2 0.077412581 1.33102088 1.09897001 3 -0.001797155 1.85365113 0.59881492 4 -0.235863387 -0.11476965 -0.23914040 5 0.641954539 -0.80069293 1.78915326 6 1.662750089 -0.48168001 -1.63141513 7 1.393413983 -0.21044222 -0.36966594 8 0.387820650 0.04998259 -0.88707049 9 -0.982245543 -1.04089646 1.51510464 10 1.540251727 -0.24360161 -0.72272136 11 0.871043177 -1.61258877 -0.08300941 12 0.894436819 1.22285505 0.25353571 13 -0.706468609 0.37879788 1.09617879 14 1.366866702 -2.36429211 0.47667869 15 0.827015705 -0.29348558 2.57175974 16 -0.709173752 -0.68338183 -0.15060505 17 0.464121383 -0.41577526 -1.52947993 18 -0.322493725 0.46212973 1.38418790 19 0.588932732 -1.98841476 0.43082069 20 -0.775650742 -0.45247281 0.62378543
To find the column name that has the largest value for each row in df1 on the above created data frame, add the following code to the above snippet −
x1<-rnorm(20) x2<-rnorm(20) x3<-rnorm(20) df1<-data.frame(x1,x2,x3) df1$Largest_Column<-colnames(df1)[apply(df1,1,which.max)] df1
Output
If you execute all the above given snippets as a single program, it generates the following Output −
x1 x2 x3 Largest_Column 1 -0.305888032 1.42530072 -0.60397460 x2 2 0.077412581 1.33102088 1.09897001 x2 3 -0.001797155 1.85365113 0.59881492 x2 4 -0.235863387 -0.11476965 -0.23914040 x2 5 0.641954539 -0.80069293 1.78915326 x3 6 1.662750089 -0.48168001 -1.63141513 x1 7 1.393413983 -0.21044222 -0.36966594 x1 8 0.387820650 0.04998259 -0.88707049 x1 9 -0.982245543 -1.04089646 1.51510464 x3 10 1.540251727 -0.24360161 -0.72272136 x1 11 0.871043177 -1.61258877 -0.08300941 x1 12 0.894436819 1.22285505 0.25353571 x2 13 -0.706468609 0.37879788 1.09617879 x3 14 1.366866702 -2.36429211 0.47667869 x1 15 0.827015705 -0.29348558 2.57175974 x3 16 -0.709173752 -0.68338183 -0.15060505 x3 17 0.464121383 -0.41577526 -1.52947993 x1 18 -0.322493725 0.46212973 1.38418790 x3 19 0.588932732 -1.98841476 0.43082069 x1 20 -0.775650742 -0.45247281 0.62378543 x3
Example 2
Following snippet creates a sample data frame −
y1<-rpois(20,5) y2<-rpois(20,5) y3<-rpois(20,5) y4<-rpois(20,5) df2<-data.frame(y1,y2,y3,y4) df2
The following dataframe is created
y1 y2 y3 y4 1 4 5 4 8 2 6 6 8 5 3 4 7 5 4 4 8 2 7 7 5 3 6 5 0 6 4 5 4 7 7 6 1 2 9 8 5 4 3 5 9 9 5 6 5 10 8 3 7 9 11 5 14 7 5 12 4 7 4 4 13 9 3 1 2 14 5 8 9 4 15 2 7 2 5 16 4 3 3 5 17 4 6 4 4 18 7 6 4 4 19 12 6 8 4 20 6 6 4 5
To find the column name that has the largest value for each row in df2 on the above created data frame, add the following code to the above snippet −
y1<-rpois(20,5) y2<-rpois(20,5) y3<-rpois(20,5) y4<-rpois(20,5) df2<-data.frame(y1,y2,y3,y4) df2$Largest_Col<-colnames(df2)[apply(df2,1,which.max)] df2
Output
If you execute all the above given snippets as a single program, it generates the following Output −
y1 y2 y3 y4 Largest_Col 1 4 5 4 8 y4 2 6 6 8 5 y3 3 4 7 5 4 y2 4 8 2 7 7 y1 5 3 6 5 0 y2 6 4 5 4 7 y4 7 6 1 2 9 y4 8 5 4 3 5 y1 9 9 5 6 5 y1 10 8 3 7 9 y4 11 5 14 7 5 y2 12 4 7 4 4 y2 13 9 3 1 2 y1 14 5 8 9 4 y3 15 2 7 2 5 y2 16 4 3 3 5 y4 17 4 6 4 4 y2 18 7 6 4 4 y1 19 12 6 8 4 y1 20 6 6 4 5 y1
- Related Articles
- Find the column number with largest value for each row in an R matrix.
- How to create a column with column name for maximum value in each row of an R data frame?
- How to add a new column to an R data frame with largest value in each row?
- Find the column name that contains value greater than a desired value in each row of an R data frame.
- How to find the row products for each row in an R data frame?
- Replace each value in a column with the largest value based on a condition in R data frame.
- Create a quartile column for each value in an R data frame column.
- Find the column name of least value in each row of an R dataframe.
- How to find the cumulative sum for each row in an R data frame?
- How to find the row sum for each column by row name in an R matrix?
- Find the frequency of unique values for each column in an R data frame.
- How to find the row and column index of a character value in an R data frame?
- How to find the column number of minimum values in each row for a data frame in R?
- How to find the maximum of each row in an R data frame?
- How to find the length of the largest string in an R data frame column?
