R语言中的apply家族函数 您所在的位置:网站首页 excel中日期家族的函数应用在哪里 R语言中的apply家族函数

R语言中的apply家族函数

2024-06-03 10:17| 来源: 网络整理| 查看: 265

R语言中apply家族的使用 apply家族函数apply函数lapply函数sapply函数vapply函数mapply函数tapply函数rapply函数eapply函数

apply家族函数

apply函数族是R语言中数据处理的一组核心函数,通过使用apply函数,我们可以实现对数据的循环、分组、过滤、类型控制等操作。但是,由于在R语言中apply函数与其他语言循环体的处理思路是完全不一样的,所以apply函数族一直是使用者玩不转一类核心函数。

很多R语言新手,写了很多的for循环代码,也不愿意多花点时间把apply函数的使用方法了解清楚,最后把R代码写的跟C似得,我严重鄙视只会写for的R程序员。 apply函数本身就是解决数据循环处理的问题,为了面向不同的数据类型,不同的返回值,apply函数组成了一个函数族,包括了8个功能类似的函数。这其中有些函数很相似,有些也不是太一样的。 apply家族函数我一般最常用的函数为apply和sapply,下面将分别介绍这8个函数的定义和使用方法

apply函数

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

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

参数列表:

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

比如,对一个矩阵的每一行求和,下面就要用到apply做循环了。

> x apply(x,1,sum) [1] 15 18 21 24

下面计算一个稍微复杂点的例子,按行循环,让数据框的x1列加1,并计算出x1,x2列的均值。

# 生成data.frame > x myFUN + row data.frame(x1=x[,1]+1,x2=rowMeans(x)) x1 x2 1 4 3.5 2 4 3.0 3 4 2.5 4 4 2.0 5 4 2.5 6 4 3.0 7 4 3.5 8 4 4.0

那么,一行就可以完成整个计算过程了。接下来,我们需要再比较一下3种操作上面性能上的消耗。

# 清空环境变量 > rm(list=ls()) # 封装fun1 > fun1 + c(sum(x[c1],1), mean(x[c2])) + } + apply(x,1,myFUN,c1='x1',c2=c('x1','x2')) + } # 封装fun2 > fun2 + row


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有