R语言中的表(table):
> u <- c( 22, 8, 33, 6, 8, 29, -2 )
> f <- list( c( 5, 12, 13, 12, 13, 5, 13 ),
+ c( "a", "bc", "a", "a", "bc", "a", "a" ) )
> tapply( u, f, length )
a bc5 2 NA #缺失值NA,事实上,这个值应该是012 1 113 2 1
> table( f )
f.2
f.1 a bc
5 2 0
12 1 1
13 2 1
函数table()第一个参数是因子或者因子的列表。数据框通常作为数据参数。
►表中有关矩阵和类似数组的操作
正如大多数矩阵/数组运算可以用在数据框上,这些运算也能用于表中。我们可以使用矩阵符号来访问表的单元格频数:
> f <- list( c( 5, 12, 13, 12, 13, 5, 13 ),
+ c( "a", "bc", "a", "a", "bc", "a", "a" ) )
> t = table( f )
> class( t )
[1] "table"
> t[ 1, 1 ]
[1] 2
> t[ 3, ]
a bc 2 1
我们可以使用函数dimnames()获得维度的名称和水平值,具体如下:
> dimnames( t )
$f.1
[1] "5" "12" "13"
$f.2
[1] "a" "bc"
►aggregate()函数
aggregate()函数对分组中每一个变量调用tapply()函数。
►cut()函数
cut()函数是生成因子的一种常用方法,尤其是常用语表的操作。该函数需要一个数据向量x和由向量b定义的一组区间,函数将确定x中每个元素将落入哪个区间。
下面是该函数的调用形式:y <- cut( x, b, labels=FALSE )。
> z <- c( 0.881, 0.285, 0.586, 0.428, 0.468, 0.242, 0.052, 0.881 )
> binmarks <- seq( from=0.0, to=1.0, by=0.1 )
> cut( z, binmarks, labels=F )
[1] 9 3 6 5 5 3 1 9
最后,该函数返回一个向量,我们可以把它转化为因子,然后用它构建表。例如,可以用这个函数编写自定义的直方图。