[R] apply fun to df returning a matrix

David Winsemius dwinsemius at comcast.net
Fri Apr 30 14:04:22 CEST 2010


On Apr 30, 2010, at 6:59 AM, Mohamed Lajnef wrote:

> Hi Soeren
>
> Apply or aggregate functions
>

Probably needs combn as well. Could do it all with numeric indices,  
but this effort with character vectors seems acceptable:

fun <- function(x){ cnms <- colnames(x)
   return(apply(combn(cnms,2), 2, function(y) sum(x[,y])))
  }
  fun(df)
#[1] 210 310 410

I do have a question about "returning a matrix" though. Did you mena  
that you wanted the pairs of sums rather than the sums of pairs. In  
that case:

  fun2 <- function(x){cnms <- colnames(x)
   return(apply(combn(cnms,2), c(1,2), function(y) sum(x[,y])))
  }

  fun2(df)
#     [,1] [,2] [,3]
#[1,]   55   55  155
#[2,]  155  255  255

-- 
David.

> best regards
> M
> Soeren.Vogel at eawag.ch a écrit :
>> Hello, a data.frame, df, holds the numerics, x, y, and z. A  
>> function, fun, should return some arbitrary statistics about the  
>> arguments, e.g. the sum or anything else. What I want to do is to  
>> apply this function to every pair of variables in df, and the  
>> return should be a matrix as found with cov. How can I achieve  
>> that? Thanks, Sören
>>
>> df <- data.frame(x=1:10, y=11:20, z=21:30);
>> fun <- function(x){
>>  return(sum(x));
>> }
>> # and now???
>>
>> ______________________________________________
>> R-help at 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.
>>
>
>
> -- 
>
>
> Mohamed Lajnef,IE INSERM U955 eq 15
> Pôle de Psychiatrie
> Hôpital CHENEVIER
> 40, rue Mesly
> 94010 CRETEIL Cedex FRANCE
> Mohamed.lajnef at inserm.fr
> tel : 01 49 81 31 31 (poste 18470)
> Sec : 01 49 81 32 90
> fax : 01 49 81 30 99
> ______________________________________________
> R-help at 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list