Hi, Try: cbind(a,do.call(rbind,apply(a,1,function(x) {data.frame(max=max(x), max.col.num=which.max(x), max.col.name=names(a)[which.max(x)],stringsAsFactors=FALSE)}))) ##assuming that unique max for each row. A.K.
On Friday, November 1, 2013 1:05 PM, Gary Dong <pdxgary...@gmail.com> wrote: Dear R users, I wonder how I can use R to identify the max value of each row, the column number column name: For example: a <- data.frame(x = rnorm(4), y = rnorm(4), z = rnorm(4)) > a x y z 1 -0.7289964 0.2194702 -2.4674780 2 1.0889353 0.3167629 -0.9208548 3 -0.6374692 -1.7249049 0.6567313 4 -0.1348642 0.4507473 -1.7309010 In this data frame, I compare y and z only. What I need: x y z max max.col.num max.col.name 1 -0.7289964 0.2194702 -2.4674780 0.2194702 2 y 2 1.0889353 0.3167629 -0.9208548 0.3167629 2 y 3 -0.6374692 -1.7249049 0.6567313 0.6567313 3 z 4 -0.1348642 0.4507473 -1.7309010 0.4507473 2 y Any suggestion will be greatly appreciated! Thank you! Gary [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.