Try this:

split(mapply(function(x, y)pres.test(x, y), DF$pop1995, DF$pop2000),
DF$country)

On Wed, Oct 29, 2008 at 10:19 AM, Corey Sparks <corey.sparks@utsa.edu>wrote:

> Dear list,
> I have the function (as a simple example, which is actually part of a
> larger function)
>
> pres.test<-function(N0=N0, N1=N1)
> {
>    dt<-5
>    r<-log(N1/N0)/dt
>    r
> }
>
> which calculates the annual growth rates in a population
>
> Where N0 is the population classified into age intervals, say 5 years, at
> time=1995, and N1 is the population by 5 year age classes at time=2000.
>
> For example some data like this are:
> country   pop1995 pop2000
> 1     1712    1940
> 1     1329    1535
> 1     1101    1268
> 1     911    1048
> 1      758     859
> 2      627     710
> 2      513     584
> 2      420     475
> 2     754     965
> 2     638     741
>
> I want to use the tapply function to apply the pres.test function over all
> countries in my data table (the real data have ~150 countries and 10 age
> classes), but I can't seem to get tapply to take as input to FUN more than
> one variable, for example I tried:
>
> popdat<-cbind(dat2.sub$pop1995, dat2.sub$pop2000) #try to force the two
> time points into a vector form
>
> tapply(popdat, dat2.sub$country, pres.test, ...=list(N0=popdat[,1],
> N1=popdat[,2])) #tried to pass the other arguments that pres.test needs  via
> ...
>
> And got the error:
> Error in tapply(popdat, dat2.sub$Country, pres.test, ... = list(N0 =
> popdat[,  :
>  arguments must have same length
>
> I see that the function mapply will take multiple arguements, but I don't
> think it will use an INDEX like tapply.
>
> Any comments or clarification would be most appreciated.
>
> Corey
>
> --
> Corey Sparks
> Assistant Professor
> Department of Demography and Organization Studies
> University of Texas at San Antonio
> One UTSA Circle
> San Antonio, TX 78249
> 210-458-6858
> corey.sparks@utsa.edu
> https://rowdyspace.utsa.edu/users/ozd504/www/index.htm
>
> ______________________________________________
> R-help@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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

	[[alternative HTML version deleted]]

