Is this what you want:
> x <- read.table(textConnection("variable
YEAR VAR
+ EC01 2006 100
+
+ EC01 2007 200
+
+ EC02 2006 500
+
+ EC02 2007 450
+
+ PROD 2006 567
+
+ PROD 2007 543"),
header=TRUE, as.is=TRUE)
> closeAllConnections()
> # split by year and then determine if there is a PROD in the year
> result <- do.call(rbind, lapply(split(x, x$YEAR), function(.year){
+ prod.indx <- which(.year$variable == "PROD")
+ if (length(prod.indx) != 1){
+ cat('missing or incorrect number of PRODs for:', .year$YEAR[1L],
'\n')
+ return(NULL)
+ }
+ prod.value <- .year$VAR[prod.indx]
+ # remove PROD from result
+ .year <- .year[-prod.indx,,drop=FALSE]
+ .year$VAR <- .year$VAR / prod.value
+ .year # return updated results
+ }))
> result
variable YEAR VAR
2006.1 EC01 2006 0.1763668
2006.3 EC02 2006 0.8818342
2007.2 EC01 2007 0.3683241
2007.4 EC02 2007 0.8287293
>
On Mon, Apr 26, 2010 at 11:07 AM, [email protected] <[email protected]>wrote:
>
> Dear list,
> I have a big data frame which looks like this:
> variable YEAR VAR
> EC01 2006 100
>
> EC01 2007 200
>
> EC02 2006 500
>
> EC02 2007 450
>
> PROD 2006 567
>
> PROD 2007 543
>
> What I would like to do is to divide each variables by PROD,namely:
> EC01(2006)/PROD(2006)
> EC01(2007)/PROD(2007)
> EC02(2006)/PROD(2006)
> EC02(2007)/PROD(2007)
> Anyone knows how to do it??
> THANKS!!!
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem that you are trying to solve?
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.