[R] Applying a function to each element of an array

Kjetil Holuerson kjetil at redcotel.bo
Fri Oct 7 21:24:47 CEST 2005


Tim Smith wrote:
> Hi,
>  
> I have a 7000x7000 matrix, and each element is an integer. For each element, I want to apply the function :
>  
> wt <- 0
>  for(q in 1:count){
>  wt <- wt + 0.5^(q-1)
> }
>  

This is not a function!  Maybe you want

helper <- function(count) sum(0.5^((1:count)-1))

> I get the value of 'count' from the elements in the matrix , and want to store the corresponding 'wt' value for that element.
>  
> I suppose I could loop through the matrix, and apply the function to each element but this would take a really really long time. Are there any quicker ways to get the same result?
>  
> many thanks,

mapply(helper, yourmat)

gives you the elements of the matrix, as a vector. So you only must 
reassemble as a matrix:

n <- nrow(yourmat)
p <- ncol(yourmat)
matrix( mapply(helper, yourmat), n, p)

Kjetil

>  
> Tim
> 
> 		
> ---------------------------------
> 
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at 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
> 
> 



--




More information about the R-help mailing list