R中的各种apply函数

时间:2022-07-21 18:38:12

lapply:可用于一个列表对象,并且返回一个列表对象

sapply:更灵活,可接受向量或者矩阵作为主要参数,返回形式更为有好的结果,常常是表格形式。

 

lapply(x,FUN,...)

sapply(x,FUN,...,simplify=TRUE,USE.NAMES=TRUE)

vapply(x,FUN,FUN.VALUE,...,USE.NAMES=TRUE)

replicate(n,expr,simplify="array")

simplify2array(x,higher=TRUE)

 

lapply:返回一个与x等长的list,每个元素是在对应的x元素上应用函数FUN的结果。

sapply:是在lapply之上的灵活版本,默认返回向量、矩阵,或当simplify="array"时为阵列array。同时应用simplify2array(),sapply(x,f,simplify=FALSE,USE.NAMES=FALSE)和应用 lapply(x,f)是等价的。

vapply:和sapply类似,但可预先指定返回值类型,更安全。

replicate:在sapply之上的可重复计算一个表达式,通常涉及随机数的产生。

simplify2array:当simplify部位FALSE时sapply调用的。

 

tapply(x,INDEX,FUN=NULL,...,simplify=TRUE),根据INDEX的不同水平(分组)对x应用FUN函数

其中:

x:原子对象,通常是一个向量。

INDEX:factors的列表,每个factor和x具有相同长度(可以是多维的)。

FUN:应用的函数,可为操作符(需用引号限定)。若为NULL,则返回一个向量。

simplify:若为假,返回list模式的一个阵列;若为真,若FUN总返回标量,则tapply返回标量模式的一个阵列(array)

 

当FUN为空时,返回一个与x等长的向量(称为split vector),其中的每个值为:x中的第i个元素在levels数组(当INDEX为多维时)或tables二维数组(列优先方式)中的索引。

INDEX为多维时,一组为一个factor向量。