R语言之apply家族函数

云计算 waitig 518℃ 百度已收录 0评论

向量化运算

R独特的拥有的功能,运算时只要有一个是向量的都会转成向量与向量之间运算,对向量中的每一个元素进行形同的运算。在别的语言中一般都是要用循环,因为在R中向量是最基本的数据结构,当然要向量化运算啦,对矩阵也是这样的,对每个元素都进行相同的运算。
这里写图片描述
R中基本都是向量化运算,但有时候我们并不希望是一个运算是对数据结构中的每个元素进行,我们希望针对其中某行或者某列进行运算时候,就要用到apply系列函数啦

apply()

作用:对矩阵的行或列使用函数;或者对数组的指定维度使用指定函数;也可以对数据框的各列使用函数,apply函数会自动将数据框转化为矩阵,但前提是数据框哥列为数值
语法:apply(data,MARGIN,FUN,…),MARGIN = 1对行使用函数,=2对列使用函数,MARGIN这个字符串可以省略
直接对矩阵/数据框进行一些函数时候是对所有元素进行的,不是按照列或行的…是指FUN的一些参数,不是给apply用的
形式:矩阵或数组➡️apply➡️向量或矩阵
这里写图片描述

quantile()缺省时候计算五分值,我们这里认为加了几分位
这里写图片描述

lapply()&sapply()

对列表list中各个元素使用函数,结果输出形式为列表
语法:apply(data,FUN,…)
形式:列表➡️lapply➡️列表
sapply()与lapply函数作用语法,只是输出结果形式为向量
这里写图片描述

tapply()

分组数据处理函数
1.tapply(vector, INDEX,FUN), 当按照两个变量进行统计时,INDEX不能直接用c(a,b),而应该用list(a,b),都是这样滴,那时候好幼稚,这个也要记笔记。。。感觉tapply()函数不好用啊。。只能根据一个index统计,没get到用处。。根据am的0/1取值,分别对mpg进行mean函数处理
这里写图片描述
2.by(data,INDEXs,FUN)
输出形式为列表,可输入一维或二维数据结构,看第一条就是进行向量化求max了。最后一条也是数据是mtcars,所以也是对里面每个元素求mean,估计因为这个来warning了。
这里写图片描述

3.aggregate(x~x1+x2+x3,data,FUN), X为计算变量,x1,x2,x3为分组变量,个人感觉最好用的分组统计了,按照几个元素分类,对disp进行统计~
这里写图片描述


本文由【waitig】发表在等英博客
本文固定链接:R语言之apply家族函数
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)