on 05/23/2008 09:51 AM Economics Guy wrote:
I can think of several ways to blunt force hard code what I want but I
imagine there is a command or two that can be easily combined to do this:

I have a data frame with about 23000 observations. There first variable is
the group to which the observation belongs (about 500 different groups). The
second variable is a response for each observation that is a 1,2,3,4 or 5. I
want to be able to calculate the percentage of each group that choose each
response. For example I want to know what percentage of group 1 (which may
have a value of 34456) choose response 1 and so on.

Here is some code I wrote that generates a data frame like the one I have.

pop <- matrix(1:100000)
groupIDs <- sample(pop,500)
groupVar <- sample(groupIDs,23000,replace=TRUE)
responseVar <- sample(1:5,23000,replace=TRUE)

example.data <- data.frame(groupVar,responseVar)

Is there a fast way to calculate these percentages beyond writing loops to
manually count the responses for each of the groups?

Thanks,

EG

Using:

  table(example.data)

will give you a cross tabulation of the counts of your ResponseVar by each groupVar.

  prop.table(table(example.data), 1)

will give you a row-wise proportion (0 - 1) of the counts of ResponseVar for each groupVar. If you want percentages (0 - 100):

   prop.table(table(example.data), 1) * 100


See ?table and ?prop.table for more information.

HTH,

Marc Schwartz

______________________________________________
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