Kelvin
2010-Jan-12 18:25 UTC
[R] Calculate the percentages of the "numbers" in every column.
Dear friends, I have a table like this, I have A B C D ... levels, the first column you see is just the index, and there are different numbers in the table. A B C D ... 1 0 2 1 0 2 1 0 2 1 3 2 3 0 0 4 0 0 1 0 5 0 2 3 1 ... I want to calculate the frequencies or the percentages of the numbers in every column. How do I get a table like this, the first column is the levels of numbers, and the numbers inside the table are the percentages. All the percentages should add up to 1 in every column. A B C D ... 0 0.2 0.3 0.1 0.1 1 0.1 0.1 0.2 0.1 2 0.1 0.2 0.2 0.2 3 0.2 0.1 0.1 0 ... Thanks your help! Kelvin
Simon Knapp
2010-Jan-13 00:36 UTC
[R] Calculate the percentages of the "numbers" in every column.
tmp <- scan() 0 2 1 0 1 0 2 1 2 3 0 0 0 0 1 0 0 2 3 1 dat <- matrix(tmp, byrow=T, ncol=4) apply(dat, 2, function(x, min.val, max.val) { tmp <- table(x)/length(x) res <- rep(0, max.val - min.val + 1) res[as.numeric(names(tmp)) - min.val + 1] <- tmp res }, 0, 3) Should do it (but I bet there is a more elegant way). Regards, Simon Knapp On Wed, Jan 13, 2010 at 5:25 AM, Kelvin <6kelvin6@gmail.com> wrote:> Dear friends, > > I have a table like this, I have A B C D ... levels, the first column > you see is just the index, and there are different numbers in the > table. > > A B C D ... > 1 0 2 1 0 > 2 1 0 2 1 > 3 2 3 0 0 > 4 0 0 1 0 > 5 0 2 3 1 > ... > > I want to calculate the frequencies or the percentages of the numbers > in every column. > > How do I get a table like this, the first column is the levels of > numbers, and the numbers inside the table are the percentages. All the > percentages should add up to 1 in every column. > > A B C D ... > 0 0.2 0.3 0.1 0.1 > 1 0.1 0.1 0.2 0.1 > 2 0.1 0.2 0.2 0.2 > 3 0.2 0.1 0.1 0 > ... > > Thanks your help! > > Kelvin > > ______________________________________________ > 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. >[[alternative HTML version deleted]]
Petr PIKAL
2010-Jan-13 11:02 UTC
[R] Calculate the percentages of the "numbers" in every column.
Hi r-help-bounces at r-project.org napsal dne 13.01.2010 01:36:31:> tmp <- scan() > 0 2 1 0 1 0 2 1 2 3 0 0 0 0 1 0 0 2 3 1 > > dat <- matrix(tmp, byrow=T, ncol=4) > > apply(dat, 2, function(x, min.val, max.val) { > tmp <- table(x)/length(x) > res <- rep(0, max.val - min.val + 1) > res[as.numeric(names(tmp)) - min.val + 1] <- tmp > res > }, 0, 3) > > Should do it (but I bet there is a more elegant way).I am not sure if more elegant or efficient but dat.m<-melt(as.data.frame(dat)) xtabs(~value+variable, dat.m)/nrow(dat) gives you similar result Regards Petr> > Regards, > Simon Knapp > > On Wed, Jan 13, 2010 at 5:25 AM, Kelvin <6kelvin6 at gmail.com> wrote: > > > Dear friends, > > > > I have a table like this, I have A B C D ... levels, the first column > > you see is just the index, and there are different numbers in the > > table. > > > > A B C D ... > > 1 0 2 1 0 > > 2 1 0 2 1 > > 3 2 3 0 0 > > 4 0 0 1 0 > > 5 0 2 3 1 > > ... > > > > I want to calculate the frequencies or the percentages of the numbers > > in every column. > > > > How do I get a table like this, the first column is the levels of > > numbers, and the numbers inside the table are the percentages. All the > > percentages should add up to 1 in every column. > > > > A B C D ... > > 0 0.2 0.3 0.1 0.1 > > 1 0.1 0.1 0.2 0.1 > > 2 0.1 0.2 0.2 0.2 > > 3 0.2 0.1 0.1 0 > > ... > > > > Thanks your help! > > > > Kelvin > > > > ______________________________________________ > > 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. > > > > [[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 guidehttp://www.R-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code.