R语言中apply函数族的介绍

您所在的位置:网站首页 r语言prod函数 R语言中apply函数族的介绍

R语言中apply函数族的介绍

2024-01-01 04:53| 来源: 网络整理| 查看: 265

文章目录 综括==apply函数==利用apply函数实现利用循环实现 定义一个结果的数据框定义for循环利用R的特性三种方法消耗时间比较 ==lapply函数====sapply函数==vapply函数==mapply函数====tapply函数==rapply函数eapply函数

综括

在这里插入图片描述

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列的均值。

利用apply函数实现 #生成data.frame > x + 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 办公设备维修网 版权所有 豫ICP备15022753号-3