Re: [R] Count or summary data

From: Marc Schwartz <MSchwartz_at_mn.rr.com>
Date: Sat 31 Dec 2005 - 02:10:37 EST

On Fri, 2005-12-30 at 15:47 +0100, Xiyan Lon wrote:
> Dear all,
> I want to summary and count my data something like
> > te.Ce
> [,1] [,2]
> [1,] -1 0.05
> [2,] 1 0.05
> [3,] 1 0.00
> [4,] 0 0.05
> [5,] -1 0.00
> [6,] 0 0.10
> [7,] 1 0.10
> [8,] -1 0.00
> [9,] -1 0.10
> [10,] 0 0.05
> [11,] 0 0.10
> [12,] -1 0.10
> [13,] 1 0.00
> [14,] -1 0.05
> [15,] 1 0.00
>
> How could I count (summary) all my data which I need the result like
>
> for 0.05
> -1 0 1
> 2 2 1
>
> for 0.00
> -1 0 1
> 2 0 3
>
> for 0.10
> -1 0 1
> 2 2 1
>
> I have tried with summary but I did not find what I need.
> Maybe someone could help me.
> Happy new year.
> Xiyan Lon

There are several options, depending upon the output format you require.

The easiest is probably to use table() to generate a crosstabs of the two columns:

> table(te.Ce[, 2], te.Ce[, 1])

       -1 0 1
  0     2 0 3

  0.05 2 2 1
  0.1 2 2 1

Then, there are by() and tapply(), each of which subsets the matrix by the value in the second column, resulting in the following:

> by(te.Ce[, 1], te.Ce[, 2], table)

INDICES: 0 -1 1
 2 3



INDICES: 0.05 -1 0 1
 2 2 1

INDICES: 0.1 -1 0 1
 2 2 1

> tapply(te.Ce[, 1], te.Ce[, 2], table)
$"0"

-1 1
 2 3

$"0.05"

-1 0 1
 2 2 1

$"0.1"

-1 0 1
 2 2 1

See ?table, ?by and ?tapply for more information.

HTH, Marc Schwartz



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sat Dec 31 02:28:33 2005

This archive was generated by hypermail 2.1.8 : Sat 31 Dec 2005 - 04:52:22 EST