在R语言中不要用循环,效率特别低,要用向量计算代替循环计算。原因在于R的循环操作for和while,都是基于R语言本身来实现的,需要编译运行的,而向量操作是基于底层的C语言函数实现的,从性能上来看,就会有比较明显的差距了。
*apply()函数系列是R中最受欢迎同时也是最常用的,该函数系列包括apply(), tapply()和lapply()。
这里我们主要介绍apply, apply 函数允许用户在矩阵的各行或各列上调用指定的函数。
以下是apply()函数的一般形式:
apply(m,dimcode,f,fargs)
参数解释如下:
·m是一个矩阵。
·dimcode是维度编号,若取值为1,代表对每一行应用函数,若取值为2代表对每一列应用函数。
·f是应用在行或列上的函数。
·fangs是f的可选参数集。
例如,对矩阵z的每一列应用函数mean():
> z = matrix(c(1,2,3,4,5,6),nrow =3) > apply(z,2,mean) [1] 2 5 >