[R] calculation fraction/ratio

jim holtman jholtman at gmail.com
Sat Feb 2 14:05:38 CET 2008


Is this what you want?

> x <- read.table(textConnection("Index A
+ 1 1
+ 1 2
+ 1 3
+ 2 4
+ 2 3
+ 3 7
+ 3 9
+ 3 3
+ 3 1"), header=TRUE)
> data.frame(x, value=ave(x$A, x$Index, FUN=function(z) z / sum(z)))
  Index A     value
1     1 1 0.1666667
2     1 2 0.3333333
3     1 3 0.5000000
4     2 4 0.5714286
5     2 3 0.4285714
6     3 7 0.3500000
7     3 9 0.4500000
8     3 3 0.1500000
9     3 1 0.0500000


On Feb 1, 2008 6:19 PM, YIHSU CHEN <yihsuc at gmail.com> wrote:
> Dear R users
>
> I wonder if there is a quick way to calculate the ratio/fraction of a
> list/data frame.  For example, if I have a data frame with two fields:
> "Index" and "A".  I would like to know the fractions of A's within the same
> "Index".   That is, for Index =1, three fractions will be "1/(1+2+3)=0.17",
> "2/(1+2+3)=0.33", and "3/1+2+3=0.5".   Likewise for Index =2 and Index 3.
> So, I then generate a new vector of 0.17, 0.33, 0.5... ,etc.
>
>
>  Index A  1 1  1 2  1 3  2 4  2 3  3 7  3 9  3 3  3 1
>
> Thank you so much
>
> Yihsu
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?



More information about the R-help mailing list