> On 16 Nov 2016, at 21:58 , Dimitri Liakhovitski > <dimitri.liakhovit...@gmail.com> wrote: > > Hello! > > I need to calculate the maximum of each row of a data frame. > This works: > > x <- data.frame(a = 1:5, b=11:15, c=111:115) > x > do.call(pmax, x) > [1] 111 112 113 114 115 > > However, how should I modify it if my data frame has NAs? > I'd like it to ignore NAs and return the maximum of all non-NAs in each row: > > x <- data.frame(a = c(1:5), b=11:15, c=c(111:114,NA)) > x > I'd like it to return: > [1] 111 112 113 114 15 > > Thanks a lot!
The first thing to notice is that pmax allows na.rm=TRUE, so it works fine to do > pmax(a = c(1:5), b=11:15, c=c(111:114,NA), na.rm=TRUE) [1] 111 112 113 114 15 I.e., it is your desire to use do.call() that is the challenge. The 2nd argument should be a list containing the arguments as in the above call, so this works too > do.call(pmax, list(a = c(1:5), b=11:15, c=c(111:114,NA), na.rm=TRUE)) [1] 111 112 113 114 15 The form do.call(pmax,x) uses the fact that a data.frame is a kind of list. What you need to do is to tack on the element na.rm=TRUE. This works > do.call(pmax, c(x, list(na.rm=TRUE))) [1] 111 112 113 114 15 and it even works without the list() > do.call(pmax, c(x, na.rm=TRUE)) [1] 111 112 113 114 15 -pd > > -- > Dimitri Liakhovitski > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.