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

本文介绍了R语言中的向量化运算函数,包括apply、tapply、lapply、sapply、mapply以及table函数的使用。apply用于数组的行或列遍历计算,tapply实现分组统计,lapply遍历列表并返回列表,sapply简化lapply的输出,mapply处理多个变量的列表,而table函数则用于计算因子出现的频数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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, 2, sum)
[1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值