有时候,我们需要对组数据进行函数计算,怎么办?首先,创建一个分组因子用来识别每个对应的数据组;然后,使用R中tapply函数,它会把一个函数应用到每组数据。语法格式如下。
tapply(x, f, fun)
说明:x是一个向量,f是一个分组因子,fun是一个函数。函数返回一个对分组数据进行fun运算所得结果而构成的一个向量。
关于tapply函数,举例说明如下。
>data1 <- c(100, 200, 300, 400, 150, 180)
>sum(data1)
[1] 1330
>mean(data1)
[1] 221.6667
>f1 <- factor(c("A", "B", "A", "B", "A", "B"))
>tapply(data1, f1, sum)
A B
550 780
>tapply(data1, f1, mean)
AB
183.3333 260.0000
>tapply(data1, f1, length)
A B
3 3
对一个Matrix或者Array进行某个维度的运算。其格式是:apply(数据,维度Index,运算函数,函数的参数)
对于Matrix来说,其维度值为2,第二个参数维度Index中,1表示按行运算,2表示按列运算。