Re: [R] function for rowMedian?

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Sun 22 Jan 2006 - 22:44:29 EST

On Sun, 22 Jan 2006, Philippe Grosjean wrote:

> Prof Brian Ripley wrote:
>> Interchange 1 and 2 (see ?apply: Andy was answering the subject line, not
>> that in the body).
>>
>> However, Max asked also for column medians of a data frame, for which use
>> sapply(DF, median)
>
> By the way, what is the preferred code for column-wise calculation on *all
> numeric* data in a data frame?
>> sapply(DF, median)
> which considers the list and then simplifies the results down to a vector or
> matrix,... or
>> apply(DF, 2, median)
> which first convert into a matrix and then do the calculation on it?

The first. apply(DF,2, ...) converts to a matrix, extracts each column and applies FUN to each (in a for loop) to form a list answer and then simplifies.

I did once try rewriting apply to call lapply(split()), but that was no faster (at the time) and used more memory.

> Best,
>
> Philippe Grosjean
>
>
>> I didn't understand the question, and it seems I was not alone :)
>>
>> On Fri, 20 Jan 2006, Philippe Grosjean wrote:
>>
>>
>>> Note that there is a confusion here: 1st dimension is row, 2nd dimension
>>> is column for matrix & data.frame.
>>
>>
>> And the dim arg to apply is the one you want the answer to have.
>>
>> A <- matrix(runif(6), 2, 3)
>> apply(A, 1, median) # row medians
>> apply(A, 2, median) # col medians
>>
>>
>>
>>> So, if the question is about "rowMedian", you have:
>>>
>>>
>>>> rowMedian <- function(x, na.rm = FALSE)
>>>> apply(x, 2, median, na.rm = na.rm)
>>>
>>> Now, you ask for the "median for specified columns", which should be as
>>> Andy proposes you, or, if you really want a colMedian function:
>>>
>>>
>>>> colMedian <- function(x, na.rm = FALSE)
>>>> apply(x, 1, median, na.rm = na.rm)
>>>
>>> Best,
>>>
>>> Philippe Grosjean
>>>
>>> Liaw, Andy wrote:
>>>
>>>> apply(x, 1, median) should do it. If not, you need to explain why.
>>>>
>>>> Andy
>>>>
>>>> -----Original Message-----
>>>> From: Max Kauer
>>>> Sent: Friday, January 20, 2006 10:24 AM
>>>> To: r-help@stat.math.ethz.ch
>>>> Subject: [R] function for rowMedian?
>>>>
>>>>
>>>> Hi
>>>> is anybody aware of a function to calculate a the median for specified
>>>> columns in a dataframe or matrix - so analogous to rowMeans?
>>>> Thanks
>>>> Max
>>
>>
>
>

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Received on Sun Jan 22 22:53:19 2006

This archive was generated by hypermail 2.1.8 : Mon 23 Jan 2006 - 02:18:49 EST