R中向量化运算apply族函数apply、tapply、lapply、sapply、mapply、table等函数

R语言提供了批量处理函数,可以循环遍历某个集合内的所有或部分元素,以简化操作。
这些函数底层是通过C来实现的,所以效率也比手工遍历来的高效。

批量处理函数有很重要的apply族函数:lapply sapply apply tapply mapply。apply族函数是高效能计算的运算向量化(Vectorization)实现方法之一,比起传统的for,while常常能获得更好的性能。

  • apply : 用于遍历数组中的行或列,并且使用指定函数来对其元素进行处理。
  • lapply : 遍历列表向量内的每个元素,并且使用指定函数来对其元素进行处理。返回列表向量。
  • sapply : 与lapply基本相同,只是对返回结果进行了简化,返回的是普通的向量。
  • mapply: 支持传入两个以上的列表。
  • tapply: 接入参数INDEX,对数据分组进行运算,就和SQL中的group by 一样。

apply函数

(1)行或列遍历操作函数apply,实现对一个数组按行或者按列进行计算

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

参数:其中X为一个数组;MARGIN为一个向量(表示要将函数FUN应用到X的行还是列),若为1表示取行,为2表示取列,为c(1,2)表示行、列都计算。
示例代码:

 X: an array, including a matrix.

 MARGIN: 1:行操作; 2:列操作

 FUN:函数名

用apply可以很方便地按行列求和/平均,其结果与colMeans,colSums,rowMeans,rowSums是一样的。

ma <- matrix(c(1:4, 1, 6:8), nrow = 2)
ma
     [,1] [,2] [,3] [,4]
[1,]    1    3    1    7
[2,]    2    4    6    8
apply(ma, c(1,2), sum)

    [,1] [,2] [,3] [,4]
[1,]    1    3    1    7
[2,]    2    4    6    8
apply(ma, 1, sum)
[1] 12 20
apply(ma, 
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值