[R] Get a percent variable based on group
arun
smartpink111 at yahoo.com
Wed Jan 16 04:40:22 CET 2013
Hi,
Is it this?
aggregate(iris$Sepal.Length,by=list(iris$Species),FUN=function(x) sum(x)/sum(iris$Sepal.Length)*100)
Group.1 x
1 setosa 28.55676
2 versicolor 33.86195
3 virginica 37.58129
A.K.
________________________________
From: Karine Charlebois <karine.charlebois at outlook.com>
To: arun <smartpink111 at yahoo.com>
Sent: Tuesday, January 15, 2013 10:22 PM
Subject: RE: [R] Get a percent variable based on group
For example,
iris$percent <- unlist(tapply(iris$Sepal.Length,iris$Species,function(x) x/sum(iris$Sepal.Length, na.rm=TRUE)))
aggregate(iris$percent, by=list(iris$Species),
FUN=sum, na.rm=TRUE)
this last command should return 100% for each specie, not the following values:
Group.1 x
1 setosa 0.2855676
2 versicolor 0.3386195
3 virginica 0.3758129
________________________________
From: karine.charlebois at outlook.com
To: smartpink111 at yahoo.com
Subject: RE: [R] Get a percent variable based on group
Date: Tue, 15 Jan 2013 22:13:27 -0500
No, it is not. I need a new column with these values.
Karine
> Date: Tue, 15 Jan 2013 19:11:22 -0800
> From: smartpink111 at yahoo.com
> Subject: Re: [R] Get a percent variable based on group
> To: karine.charlebois at outlook.com
> CC: r-help at r-project.org
>
>
>
> HI,
>
> Not sure if this is what you meant.
> tapply(iris$Sepal.Length,iris$Species,FUN=function(x) sum(x)/sum(iris$Sepal.Length)*100)
> # setosa versicolor virginica
> # 28.55676 33.86195 37.58129
> A.K.
>
>
> ----- Original Message -----
> From: Karine Charlebois <karine.charlebois at outlook.com>
> To: "r-help at r-project.org" <r-help at r-project.org>
> Cc:
> Sent: Tuesday, January 15, 2013 9:30 PM
> Subject: [R] Get a percent variable based on group
>
> Dear all, I'd like to get a percentage variable based on a group, but without creating a new data frame.
> For example:
> data(iris)
>
> iris$percent <-unlist(tapply(iris$Sepal.Length,iris$Species,function(x) x/sum(x, na.rm=TRUE)))
>
> This does not work, I should have only three standard values, respectively for setosa, versicolor, and virginica. How can I do this?
>
> MANY THANKS,
>
> Karine
>
> [[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.
>
More information about the R-help
mailing list