Try this:

> fdata
    state statenum year    income popul
1 ALABAMA        1    1  9.703193  3973
2 ALABAMA        1    2  9.745950  3992
3 ALABAMA        1    3  9.762092  4015
4  ALASKA        2    1 10.221640   532
5  ALASKA        2    2 10.169600   544
6  ALASKA        2    3 10.101300   539
> statepops<-tapply(fdata$popul,fdata$state,sum)
> popweight <- statepops/sum(statepops)
> fdata$adj <- fdata$income * popweight[fdata$state]
> fdata
    state statenum year    income popul      adj
1 ALABAMA        1    1  9.703193  3973 8.550515
2 ALABAMA        1    2  9.745950  3992 8.588193
3 ALABAMA        1    3  9.762092  4015 8.602417
4  ALASKA        2    1 10.221640   532 1.214266
5  ALASKA        2    2 10.169600   544 1.208084
6  ALASKA        2    3 10.101300   539 1.199971
>


On Tue, Jun 23, 2009 at 3:11 PM, camillus <citizencamil...@gmail.com> wrote:

>
> Hi Guys,
>
> I would like to weight column entries in a data frame by the population of
> each state.  For example, here is some data:
>
> state     statenum year income        popul
> ALABAMA        1    1   9.703193      3973.00
> ALABAMA        1    2   9.745950      3992.00
> ALABAMA        1    3   9.762092      4015.00
> ALASKA         2    1   10.221640     532.00
> ALASKA         2    2   10.169600     544.00
> ALASKA         2    3   10.101300     539.00
>
>
> I would like to adjust "income" by population ("popul") for each state.  I
> can use:
>
> statepop<-tapply(fdata$popul,fdata$state,sum),
>
> which gives:
>
> ALABAMA     ALASKA
> 53590.130   7435.263
>
> I can find the weights:
>
> popweight <- statepops/sum(statepops)
>
>    ALABAMA      ALASKA
> 0.016327564 0.002265338
>
> Is there an efficient way to multiply each entry of "income" by "popweght"
> conditional on the state?  That is, ALABAMA income for year 1 is
> 9.703193*0.016327564, etc.
>
> Thanks,
>
> William
> --
> View this message in context:
> http://www.nabble.com/Weighting-column-entries-in-a-data-frame-tp24171435p24171435.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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<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]]

______________________________________________
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.

Reply via email to