[R] DataFrame help

Uwe Ligges ligges at statistik.tu-dortmund.de
Fri Jul 17 13:05:02 CEST 2009



Don MacQueen wrote:
> As others noted, you can use the built in function colSums, but you said 
> you're writing your own. Given what you've got so far, that makes the 
> issue one of structuring the output.
> 
> Try
> 
> csum <- function(m)
> {
>     a = data.frame(m)
>     s = lapply(a,sum)
>     unlist(s)
> }
> 
> lapply() returns a list, so you have to use unlist() on it in order to 
> restructure the list into a vector.
> 
> 
> However:
> 
> Converting the matrix to a dataframe is not needed; you can use the 
> apply() function on the matrix, as suggested by Jorge, in which case the 
> result will already be a vector, so you won't need to unlist(). Then 
> it's much simpler:
> 
> csum <- function(m) apply(m,2,sum)


... where csum()'s functionality is already implemented in R as 
colSums(), moreover colSums() is faster than csum().

Uwe Ligges



> A couple of other notes:
> 
> Using return() is unnecessary in such a simple function.
> 
> Be careful with terminology. You said you want the result as a single 
> "list". But a list, in R, is an object with a particular structure, but 
> *not* the structure you appear to be looking for, since your description 
> "[1] 6 15 24" looks like a vector, not a list.
> 
> -Don
> 
> 
> At 11:25 AM -0700 7/16/09, voidobscura wrote:
>> Alright, so I am trying to write my own function to calculate column 
>> sums in
>> a matrix.  I want the result as a single list with the values.
>>
>> So far I have:
>>
>> csum<-function(m)
>> {
>>     a = data.frame(m)
>>     s = lapply(a,sum)
>>     return(s)
>> }
>>
>> What is the easiest way to have it return in a format such as [1] 6 15 
>> 24 ?
>>
>> Thanks.
>> -- 
>> View this message in context: 
>> http://*www.*nabble.com/DataFrame-help-tp24521881p24521881.html
>> Sent from the R help mailing list archive at Nabble.com.
>>
>> ______________________________________________
>> 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.
> 
>




More information about the R-help mailing list