apply家族函数的用法

apply家族函数

apply函数族是R语言中数据处理的一组核心函数,通过使用apply函数,我们可以实现对数据的循环、分组、过滤、类型控制等操作。

apply 函数的用法

常用的apply族函数有apply和sapply。apply函数是最常用的代替for循环的函数。apply函数可以对矩阵、数据框、数组(二维、多维),按行或列进行循环计算,对子元素进行迭代,并把子元素以参数传递的形式给自定义的FUN函数中,并以返回计算结果。

1
apply(X, MARGIN, FUN, ...)

参数列表:

  • X:数组、矩阵、数据框
  • MARGIN: 按行计算或按按列计算,1表示按行,2表示按列
  • FUN: 自定义的调用函数
  • …: 更多参数,可选

如:

1
2
3
> x<-matrix(1:12,ncol=3)
> apply(x,1,sum)
[1] 15 18 21 24

lapply 函数的用法

lapply函数是一个最基础循环操作函数之一,用来对list、data.frame数据集进行循环,并返回和X长度同样的list结构作为结果集,通过lapply的开头的第一个字母’l’就可以判断返回结果集的类型。

函数定义:

1
lapply(X, FUN, ...)

参数列表:

  • X:list、data.frame数据
  • FUN: 自定义的调用函数
  • …: 更多参数,可选

sapply函数的用法

sapply函数是一个简化版的lapply,sapply增加了2个参数simplify和USE.NAMES,主要就是让输出看起来更友好,返回值为向量,而不是list对象。

函数定义:

1
sapply(X, FUN, ..., simplify=TRUE, USE.NAMES = TRUE)

参数列表:

  • X:数组、矩阵、数据框
  • FUN: 自定义的调用函数
  • …: 更多参数,可选
  • simplify: 是否数组化,当值array时,输出结果按数组进行分组
  • USE.NAMES: 如果X为字符串,TRUE设置字符串为数据名,FALSE不设置

参考资料