京公网安备 11010802034615号
经营许可证编号:京B2-20210330
R中的apply族函数
如果计算涉及到 一个单一的向量,而结果也是一个向量 , tapply函数 是一个可选项,不同于aggregate函数,它返回一个向量或数组,这使得其单个元素很容易被访问。
将组定义为矩阵的行或列,即操作目标为矩阵的每一列或行时, apply函数 时最佳选择。该函数通常会返回一个向量或数组,但根据行或列操作的结果维度不同,将返回一个列表。
将组定义为列表中的元素。 如果组已经形成列表元素,那么 sapply或lapply函数 比较适合,它们的区别是lapply返回一个列表,而sapply可将输出简化为向量或数组。有时可以结合使用split函数,将需要处理的数据创建为一个列表,然后再使用这两个函数。
如果所要计算函数的参数为一个矩阵或数组, 可以考虑使用 mapply函数 ,该函数非常的灵活和简单,其返回的结果一般是列表形式。
先来看一下tapply()、apply()、lapply()、sapply()和mapply()函数的 语法规则:
tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)
apply(X, MARGIN, FUN, ...)
lapply(X, FUN, ...)
sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
mapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE,
USE.NAMES = TRUE)
根据不同的函数,输入数据X可能是向量、数组、矩阵或数据框;INDEX一般为类别变量;MARGIN指定矩阵的维度,1表示矩阵的行,2表示矩阵的列;FUN为参与运算的函数,可以是R自带的函数也可以是自己编写的函数;...为函数FUN指定的参数,紧跟在函数的后面。
接下来看一下各个函数的应用情况
为了处理基于一个或多个分组变量的单个向量,可以使用tapply函数, 该函数返回一个数组,其维数与分组向量的维数相同 。
注意,该函数的输入数据必须是向量,且分析向量与分组向量的长度必须一致
如果想分析iris数据集中Sepal.Length在各个花种中的最大值,可以通过tapply函数实现,这里的Sepal.Length和Species为两个向量,且各自的长度均相等。
如果想对某个变量(向量)进行多变量的分组分析时,也可以采用tapply函数。
首先构造一个数据框:
接下来想对z变量做分组统计,分组变量为x和y
这里的NA表示x和y的分组中没有对应的z值。
当数据具备 数组 的特性,可通过 apply函数对数据的每个维度进行运算 ,该函数需要 三个参数 :需要计算的 数组、运算维度的索引号和使用的函数。
标准化一个矩阵:这里可以直接给参数FUN为scale
当然,如果想统计各个列的均值,为比较显式循环和apply的隐式循环,程序如下,就可以比较出两种方式的效率:
\
结果显式,通过apply计算矩阵列的均值速度是显式循环的50倍。这说明在R中使用循环的话尽量使用到隐式的向量化计算,否则计算效率非常差。
再来看一个如何使用自编函数应用到apply中:这里显式了前7列的统计量值。
lapply()函数和sapply()函数把一个列表或向量作为其第一个参数,再把需要应用到每个列表元素的函数作为它的第二个参数。 其实它也应用到了循环,是一种隐式的循环,对列表的每一个元素做同样的函数计算。
应用:查看字符向量中每一个元素所包含的单词个数
使用sapply函数的另一个重要问题涉及到数据框。当数据框被视为列表时,数据框的每一列看着独立的列表元素。
查看数据集iris和ChickWeight各个字段的模式和类
通过以上的应用,可以提取满足特定条件的数据框的列
接下来使用自编函数加入到sapply函数中,实现循环。该自编函数的目的是计算出1000个100*5的矩阵中最大相关系数的均值。 这里很关键的一点是给自编函数传一个虚拟参数i用来循环。
最后再来看一下mapply函数的应用:该函数的第一个参数为指定的函数,第二个参数为指定函数的参数。如果根据某种正则表达式将一个字符向量的对应特征取出来,例如取出'qaws1few4g'中的'1f'和'4g'
最后总结一下:
tapply()的被分析对象必须且只能是向量
apply()的被分析对象必须且只能是矩阵或数组
sapply()的被分析对象必须且只能是向量或列表
lapply()的被分析对象必须且只能是向量或列表
mapply()的被分析对象必须是函数
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
尊敬的考生: 您好! 我们诚挚通知您,CDA Level III 考试大纲将于 2025 年 12 月 31 日实施重大更新,并正式启用,2026年3月考 ...
2025-12-31“字如其人”的传统认知,让不少“手残党”在需要签名的场景中倍感尴尬——商务签约时的签名歪歪扭扭,朋友聚会的签名墙不敢落笔 ...
2025-12-31在多元统计分析的因子分析中,“得分系数”是连接原始观测指标与潜在因子的关键纽带,其核心作用是将多个相关性较高的原始指标, ...
2025-12-31对CDA(Certified Data Analyst)数据分析师而言,高质量的数据是开展后续分析、挖掘业务价值的基础,而数据采集作为数据链路的 ...
2025-12-31在中介效应分析(或路径分析)中,间接效应是衡量“自变量通过中介变量影响因变量”这一间接路径强度与方向的核心指标。不同于直 ...
2025-12-30数据透视表是数据分析中高效汇总、多维度分析数据的核心工具,能快速将杂乱数据转化为结构化的汇总报表。在实际分析场景中,我们 ...
2025-12-30在金融投资、商业运营、用户增长等数据密集型领域,量化策略凭借“数据驱动、逻辑可验证、执行标准化”的优势,成为企业提升决策 ...
2025-12-30CDA(Certified Data Analyst),是在数字经济大背景和人工智能时代趋势下,源自中国,走向世界,面向全行业的专业技能认证,旨 ...
2025-12-29在数据分析领域,周期性是时间序列数据的重要特征之一——它指数据在一定时间间隔内重复出现的规律,广泛存在于经济、金融、气象 ...
2025-12-29数据分析师的核心价值在于将海量数据转化为可落地的商业洞察,而高效的工具则是实现这一价值的关键载体。从数据采集、清洗整理, ...
2025-12-29在金融、零售、互联网等数据密集型行业,量化策略已成为企业提升决策效率、挖掘商业价值的核心工具。CDA(Certified Data Analys ...
2025-12-29CDA中国官网是全国统一的数据分析师认证报名网站,由认证考试委员会与持证人会员、企业会员以及行业知名第三方机构共同合作,致 ...
2025-12-26在数字化转型浪潮下,审计行业正经历从“传统手工审计”向“大数据智能审计”的深刻变革。教育部发布的《大数据与审计专业教学标 ...
2025-12-26统计学作为数学的重要分支,是连接数据与决策的桥梁。随着数据规模的爆炸式增长和复杂问题的涌现,传统统计方法已难以应对高维、 ...
2025-12-26数字化浪潮席卷全球,数据已成为企业核心生产要素,“用数据说话、用数据决策”成为企业生存与发展的核心逻辑。在这一背景下,CD ...
2025-12-26箱线图(Box Plot)作为数据分布可视化的核心工具,凭借简洁的结构直观呈现数据的中位数、四分位数、异常值等关键信息,广泛应用 ...
2025-12-25在数据驱动决策的时代,基于历史数据进行精准预测已成为企业核心需求——无论是预测未来销售额、客户流失概率,还是产品需求趋势 ...
2025-12-25在数据驱动业务的实践中,CDA(Certified Data Analyst)数据分析师的核心工作,本质上是通过“指标”这一数据语言,解读业务现 ...
2025-12-25在金融行业的数字化转型进程中,SQL作为数据处理与分析的核心工具,贯穿于零售银行、证券交易、保险理赔、支付结算等全业务链条 ...
2025-12-24在数据分析领域,假设检验是验证“数据差异是否显著”的核心工具,而独立样本t检验与卡方检验则是其中最常用的两种方法。很多初 ...
2025-12-24