c语言apply函数,【R语言】apply函数家族大全

对于apply函数家族的几个函数你是不是经常搞混,有时候不知道用哪个函数比较合适呢?下面就由小编详细解说apply函数家族中常用的八个函数吧。

apply()函数

函数调用格式:apply(X, MARGIN, FUN, ...)

MARGIN参数:1表示矩阵行,2表示矩阵列,c(1,2) 表示矩阵行和列

操作对象:矩阵、数组或数据框

操作方式:抽取矩阵或数据框的每行或每列,作为向量执行指定的FUN

返 回 值:向量(如果FUN返回一个值)、矩阵(如果FUN返回一个固定长度的向量,按列排列)或列表(如果FUN返回长度不同的向量)

实例:

334aefdba5981c9214413bdacbf329e7.pnglapply()函数

函数调用格式:lapply(X, FUN, ...)

操作对象:列表,数据框(不能用于矩阵或数组)

操作方式:针对列表的每一个元素执行FUN(如果操作对象是数据框,按列执行FUN)

返回值:与输入列表等长的列表

实例:

88a1b899218bbad65c4018f042453fc0.png

sapply()函数

函数调用格式:sapply(X, FUN, …, simplify = TRUE, USE.NAMES = TRUE)

Simplify参数:逻辑值或者字符串,如果simplify = FALSE ,则等价于lapply。默认值是TRUE,如果合适,将会返回一个向量或者矩阵。如果simplify = ” array”,结果将返回一个阵列。

USE.NAMES参数:逻辑值,如果为TRUE,且x没有被命名,则对x进行命名。

操作对象:列表简化版的lapply

操作方式:针对列表的每一个元素执行FUN

返回值:向量或矩阵

实例:

ab61bed6da9921de7d6e41ec61079d82.png

vapply()函数

函数调用格式:vapply(X, FUN, FUN.VALUE, …, USE.NAMES = TRUE)

simplify参数: 逻辑值或者字符串,如果可以,结果应该被简化为向量、矩阵或者高维数组。必须是命名的,不能是简写。默认值是TRUE,若合适将会返回一个向量或者矩阵。如果simplify = ” array”,结果将返回一个阵列。

FUN.VALUE参数:一个通用型向量,FUN函数返回值得模板

操作对象:向量或者表达式对象,其余对象将被通过as.list强制转换为list

操作方式:针对对象的每一个元素执行FUN

返回值:预定义类型

实例:

cdd63dbed8aba408f22022406ba888a6.png

tapply()函数

函数调用格式:tapply(X, INDEX, FUN, …, simplify = TRUE)

INDEX参数:因子列表,和x长度一样,元素将被通过as.factor强制转换为因子

simplify参数:若为FALSE,tapply将以列表形式返回阵列。若为TRUE,FUN则直接返回数值

操作对象:向量

操作方式:把向量根据INDEX(比如因子)分组,对每一组执行FUN

返回值:数组或列表

实例:

d432d12b9496b012b7367801ba0a9d33.png

eapply()函数

函数调用格式:eapply(env, FUN, …, all.names = FALSE, USE.NAMES = TRUE)

env参数:将被使用的环境

all.names参数:逻辑值,指示是否对所有值使用该函数

USE.NAMES参数:逻辑值,指示返回的列表结果是否包含命名

操作方式:通过对environment中命名值进行FUN计算后返回一个列表值,用户可以请求所有使用过的命名对象。

实例:

ad7e507cfeb22d985a6b938cc3f1b00e.png

mapply()函数

函数调用格式:mapply(FUN, …, MoreArgs = NULL, SIMPLIFY = TRUE, USE.NAMES = TRUE)

MoreArgs参数:FUN函数的其他参数列表

SIMPLIFY参数:逻辑或者字符串,可以减少结果成为一个向量、矩阵或者更高维阵列,详见sapply的simplify参数

USE.NAMES参数:逻辑值,如果第一个参数…已被命名,将使用这个字符向量作为名字操作对象:列表多变量版的 sapply

操作方式:将对…中的每个参数运行FUN函数,如有必要,参数将被循环。

返回值:向量或矩阵

实例:

9b2193259f912222b5b6e4070b2bc593.png

rapply()函数

函数调用格式:rapply(X, FUN, classes = “ANY”, deflt = NULL, how = c(“unlist”, “replace”, “list”), …)

classes参数:关于类名的字符向量,或者为any时则匹配任何类

deflt参数:默认结果,如果使用了how = “replace”,则不能使用

how参数:字符串匹配三种可能结果操作对象:列表递归版本的lapply

实例:

c610f07b21c36a2d912b6c9cd579fd81.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值