[R] Get a percent variable based on group
David Winsemius
dwinsemius at comcast.net
Wed Jan 16 04:34:38 CET 2013
On Jan 15, 2013, at 6:30 PM, Karine Charlebois wrote:
> 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)))
A percentage is 100 times a fraction whose nominal value is unity. My guess is that you want a percentage of the group mean? So this would just be:
iris$percent <-ave(iris$Sepal.Length, iris$Species, FUN=function(x) 100*x/mean(x, na.rm=TRUE))
head(iris)
>
> This does not work, I should have only three standard values, respectively for setosa, versicolor, and virginica. How can I do this?
If you just want three values, then I do not see how these are percentages.
> tapply(iris$Sepal.Length,iris$Species,function(x) mean(x, na.rm=TRUE))
setosa versicolor virginica
5.006 5.936 6.588
--
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list