首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

R语言中的apply函数

前言 apply函数R语言中数据处理的一组核心函数,通过使用apply函数,我们可以实现对数据的循环、分组、过滤、类型控制等操作。...但是,由于R语言中apply函数与其他语言循环体的处理思路是完全不一样的,所以apply函数一直是初学者玩不转的一类核心函数。...apply函数可以对矩阵、数据框、数组(二维、多维),按行或列进行循环计算,对子元素进行迭代,并把子元素以参数传递的形式给自定义的FUN函数,并返回计算结果。...MARGIN:表示对行(1)或者是对列(2)应用函数。 FUN: 可是R自带函数,如mean,sum等。也可以是自己编写的函数。 ... :FUN的额外参数。...,此外,它还可以对data.frame数据集按列进行循环,但如果传入的数据集是一个向量或矩阵对象,那么直接使用lapply就不能达到想要的效果了,lapply会分别循环矩阵的每个值,不是按行或按列进行分组计算

4.4K52
您找到你想要的搜索结果了吗?
是的
没有找到

R」apply,lapply,sapply用法探索

本文节选自张丹的《R的极客理想》系列。 1. apply的家族函数 apply函数R语言中数据处理的一组核心函数,通过使用apply函数,我们可以实现对数据的循环、分组、过滤、类型控制等操作。...但是,由于R语言中apply函数与其他语言循环体的处理思路是完全不一样的,所以apply函数一直是使用者玩不转一类核心函数。...apply函数本身就是解决数据循环处理的问题,为了面向不同的数据类型,不同的返回值,apply函数组成了一个函数,包括了8个功能类似的函数。这其中有些函数很相似,有些也不是太一样的。 ?...apply函数可以对矩阵、数据框、数组(二维、多维),按行或列进行循环计算,对子元素进行迭代,并把子元素以参数传递的形式给自定义的FUN函数,并以返回计算结果。...,apply实现的循环耗时很短,直接使用R语言内置的向量计算的操作几乎不耗时。

4.4K32

如何高效地学好 R

这是贯穿整个R学习的最重要的一部,很多时候你并不是不知道在哪里找,怎么使用某个函数的参数,更多的时候你是不知道某个统计方法的原理,所代表的意义甚至不知道该用什么方法。...由于Rmatlab一样,注重的是批量处理,而且R之中的循环往往效率极低,所以R之中如果你发现你要使用双层循环的时候,就要想想了,有没有批量处理的方法。...明显看出,批处理并且避免显式循环的方式的确有助于提高速度,代码量也少的多。因此,何乐而不为呢? 但是经过测试,并不是每个批处理函数的效果并不是都是那么明显,譬如:strsplit。...3. apply函数aggregate函数 这是R基础包自带的两类用于批量处理的函数包,在此,只做简单地介绍: apply函数共有五个,分别是:apply,lapply,sapply,tapply...关于如何用别的语言混编apply函数的效率还可以看这个博文,写得不错: 谢益辉: 也谈提高R语言的运算效率(http://cos.name/2009/12/improve-r-computation-efficiency

1.2K50

R语言中的批处理函数

R语言中,apply系列函数作为批量处理函数,可以循环遍历某个集合内的所有或部分元素,以简化操作。这些函数底层是通过C来实现的,所以效率也比手工遍历来的高效。...1.apply函数 apply函数只能用于处理矩阵类型的数据,也就是说所有的数据必须是同一类型。因此要使用apply函数的话,需要将数据类型转换成矩阵类型。...lapply函数得到处理得到的数据类型是列表,sapply函数得到处理的数据类型是向量。这两个函数除了返回值类型不同外,其他方面基本完全一样。 ? ?...3.tapply函数 它通常会有三个参数,第一个参数代表数据,第二个参数表示如何对数据进行分组操作,第三个参数指定每一个分组内应用什么函数。...总结以上函数应用可以减少R语言中的For循环,从而提升R语言效率。 欢迎各位学习交流

2.6K20

深度神经网络的数学,对你来说会不会太难?

目标则是寻找一组最优参数θ∗,使得 f(X;θ∗) 最合适于描述给定的数据。 在前馈神经网络,θ就是神经网络,该网络由 d 个函数组成: ?...可以由 2*2 矩阵在前一层神经网络执行卷积得出,然后再应用非线性函数 g: ? 。 参数 a(k)、b(k)、c(k) d(k) 只取决于不同层级滤波器的设定,不取决于特定的元素 i,j。...卷积神经网络的另一个通用的部分是池化操作。执行完卷积并在矩阵索引函数 ? 应用了 g 之后,我们可以用周围函数的均值或最大值替代当前的函数。即设定: ? 这一技术同时可以应用到降维操作。...不幸的是,我们并不知道如何在图模型抽样或优化,这也就极大地限制了玻尔兹曼机深度学习应用。 深度信念网络 深度信念网络计算上更为简洁,尽管它的定义比较复杂。...我们得出结论,我们的函数空间存在一个连续的线性映射 L,其 U¯ 上限制为 0,但不是恒为零。换句话说,它足以表明 U 为零的任何连续线性映射 L 必须是零映射,即证明了我们想要的结果。

64750

社交网络分析的 R 基础:(四)循环与并行

循环是社交网络分析的主旋律,比如使用 for 循环遍历分析网络的每一个节点。当网络规模足够大时,并行处理又变得十分必要。熟练掌握本章的内容后,你的程序将会优雅自然。...R 语言本身来实现的,向量操作是基于 C 语言实现的,所以应避免使用显式循环使用 apply() 系列函数进行替代。...apply() 系列函数本身就是解决数据循环处理的问题,为了面向不同的数据类型,不同的返回值,apply() 函数组成了一个函数。...其本质是对 for 循环的进一步封装,并不会加快计算速度。apply() 函数的定义如下: apply(X, MARGIN, FUN)  提示 要查看函数的文档可以 R 终端中键入“?...对一个矩阵的行求和使用 apply() 函数更简单,但效率不如 sapply()。

1.2K10

1.基础知识(1) --Matlab基础知识

; ü 为广泛的工程科学应用程序附加的工具箱; ü 用于构建具有自定义用户接口的应用程序的工具; ü 用于 C/ C++、Java®、.NET、Python、SQL、Hadoop Microsoft...无论数据类型如何,所有 MATLAB 变量都是多维数组矩阵是线性代数中常用的二维数组。 1.3.1 建立数组 若要在一行创建包含四个元素的数组,请使用英文逗号(,)或空格分隔这些元素。...要执行元素乘不是矩阵乘,请使用 .* 运算符: p = a....1.8.2 实时脚本 您可以 live scripts 中使用格式化选项来增强代码,不是用纯文本的方式编写代码注释。...如果要将 monospace 字体应用于文本函数名,请点击 Live Editor 选项卡的 Text 选项的按钮 M 。

2.8K20

神经网络深度学习(吴恩达-Andrew-Ng):一二周学习笔记

2.4 梯度下降法 如何使用梯度下降法来训练或学习训练集的参数wb,成本函数只能用来说明你选择的wb作用效果好不好,最后误差大不大,参数wb训练集的效果,但是我们不知道一个wb的关系,如何取值...2.10 m个样本的梯度下降 之前的视频,已经看到如何计算导数把梯度下降法应用到logistc回归的一个训练样本,现在我们想要把他应用在m个训练样本 。...当你应用深度学习算法,你会发现在代码显示的使用for循环会使算法的效率很低,同时深度学习领域,会有越来越大的数据集,所以能够应用你的算法完全不显示for循环的话是很有用的,可以帮你处理更大的数据集,...所以每当你想写一个for循环时,应该看看可不可以调用numpy,用内置函数计算,不是用for循环, 接下来看看如何把这些技巧应用到logistc回归梯度下降算法实现来,看看是否可以去掉两个for循环中的一个...所以代码,尽量使用n1矩阵,基本是列向量,或1n矩阵,基本是行向量,随意插入assert()声明,要仔细检查你的矩阵数组的维度。不要害怕调用reshape来保证你的数组或向量是你想要的维度。

2.2K10

R语言进行机器学习方法及实例(一)

机器学习和数据挖掘的区别可能是机器学习侧重于执行一个已知的任务,数据发掘是大数据寻找有价值的东西。...单规则算法(1R或OneR)ZeroR的基础添加一个规则。...对于cox分布,y要求是两列,分别是timestatus,后者是二进制变两,1表示死亡,0表示截尾,survival包带的Surv()函数可以产生这样的矩阵。...如果反应变量是比例矩阵的话,权重是总计数;默认每个观察权重都是1;   offset: 包含在线性预测观察向量同样长度的向量,poisson分布使用(比如log后的暴露时间),或者是对于已经拟合的模型的重新定义...matrix返回矩阵的形式包括各类的概率。class返回树的分类。否则返回一个向量的结果。   可以使用R包rpart.plotrpart.plot函数对回归树结果可视化。

3.2K70

隐式循环及function函数

隐式循环 单细胞分析,我们读取多个单细胞数据集时通常会用到lapply()函数循环读取多个数据集 比如在技能树最近如何整合多个单细胞数据集推文中,就多次用到了lapply()函数 dir='GSE152938...,学到了apply()lapply()两个函数,那一起来了解一下隐式循环吧!...apply()函数 apply()一般用于处理矩阵/数据框,返回通过将函数应用数组矩阵的边距获得的向量或数组或值列表。...简介 Sapply是lapply的用户友好版本包装器,默认情况下通过应用simplify2array()返回一个向量、矩阵,如果simplify = "array",则在适当情况下返回一个数组。...写函数函数——function() 使用apply或者lapply函数时,都有FUN参数,就是我们执行循环时需要用的函数,这个函数可以是内置的比如mean或者sum等函数,也可以由我们自己构建 如果需要写对应需求的函数

11210

R语言系列第六期:③R语言高级绘图(

绘制二维图形 R,绘制二维图形主要有两个函数plot()matplot()。 plot()函数主要绘制标准的x-y图形,它是基于笛卡尔坐标。...一个矩阵的列参照另一个矩阵的相应列来绘制图形。绘制同一个图时,两个矩阵的行数应该一样。如果行数不一样,行数较少的那个矩阵用缺失值(NA)来填充。第一个矩阵的值会用在横轴。...符号、线与坐标轴风格的选项 可以使用一些选项来制定R绘制的图形。函数plot()matplot(),选项通常作为附加参数被调用。可选参数能以任意顺序输入,以逗号隔开。...另外,使用lty=选项matplot()的其它选项时,可将这些选项的值组成一个向量,向量的各元素会分别用到对应的图形,使其具有不同的样式。...文本的最终大小为 ps*cex family 绘制文本时使用的字体。标准的取值为serif(衬线)、sans(无衬线)mono(等宽) C. 颜色 在数据图形颜色应该谨慎且有节制地使用

3.8K11

学习笔记 | 吴恩达之神经网络深度学习

2.4 梯度下降法 如何使用梯度下降法来训练或学习训练集的参数wb,成本函数只能用来说明你选择的wb作用效果好不好,最后误差大不大,参数wb训练集的效果,但是我们不知道一个wb的关系,如何取值...2.10 m个样本的梯度下降 之前的视频,已经看到如何计算导数把梯度下降法应用到logistc回归的一个训练样本,现在我们想要把他应用在m个训练样本 。...for循环 当你应用深度学习算法,你会发现在代码显示的使用for循环会使算法的效率很低,同时深度学习领域,会有越来越大的数据集,所以能够应用你的算法完全不显示for循环的话是很有用的,可以帮你处理更大的数据集...所以每当你想写一个for循环时,应该看看可不可以调用numpy,用内置函数计算,不是用for循环, 接下来看看如何把这些技巧应用到logistc回归梯度下降算法实现来,看看是否可以去掉两个for循环中的一个...所以代码,尽量使用n1矩阵,基本是列向量,或1n矩阵,基本是行向量,随意插入assert()声明,要仔细检查你的矩阵数组的维度。不要害怕调用reshape来保证你的数组或向量是你想要的维度。

1.1K40

python学习笔记第三天:python之numpy篇!

先上例子: 这里我们生成了一个一维数组a,从0开始,步长为1,长度为20。Python的计数是从0开始的,RMatlab的使用者需要小心。...想计算全部元素的、按行求最大、按列求最大怎么办?for循环吗?不,NumPy的ndarray类已经做好函数了: 算中大量使用矩阵运算,除了数组,NumPy同时提供了矩阵对象(matrix)。...矩阵对象和数组的主要有两点差别:一是矩阵是二维的,数组的可以是任意正整数维;二是矩阵的'*'操作符进行的是矩阵乘法,乘号左侧的矩阵乘号右侧的矩阵行要相等,而在数组'*'操作符进行的是每一元素的对应相乘...这个陷阱Python编程很容易碰上,其原因在于Python不是真正将a复制一份给b,而是将b指到了a对应数据的内存地址。...下面这个例子是将第一列大于5的元素(1015)对应的第三列元素(1217)取出来: 可使用where函数查找特定值在数组的位置: 六、数组操作 还是拿矩阵(或二维数组)作为例子,首先来看矩阵转置:

2.7K50

R的极客理想系列文章】RHadoop培训 之 R基础课

注释:一行以井号”#”开头 换行:如果一条命令一行结束的时候语法还不完整,换行提示符,默认是+ 3). 基本的对象 R创建和控制的实体被称为对象。...列表被认为是一种"递归"结构不是原子结构,因为它们的元素可以以它们各自的方式单独列出。函数表达式也是递归结构。...如果它的长度为k,那么该数组就是k-维的。 向量只有定义了dim属性后才能作为数组R使用。...短的向量操作数将会被循环使用以达到其他操作数的长度 有且只有短的向量和数组在一起,数组必须有一样的属性dim,否则返回一个错误 向量操作数比矩阵或者数组操作数长时会引起错误 如果数组结构给定,同时也没有关于向量的错误信息强制转换操作...读数据 大的数据对象常常是从外部文件读入,不是R 对话时用键盘输入的。 read.table()函数 为了可以直接读取整个数据框,外部文件常常要求有特定的格式。

2.8K20

Python 数学应用(一)

请注意,这些函数与基本 NumPy 包的标准exp、log、sin、costan函数不同,后者是元素基础应用相应的函数。相反,矩阵指数函数使用矩阵的“幂级数”定义的。...许多应用,系数矩阵将非常庞大,有数千行列,并且可能来自替代来源不是简单地手动输入。许多情况下,它还将是稀疏矩阵,其中大多数条目为 0。 如果矩阵的大多数元素为零,则矩阵是稀疏的。...plt.show函数不仅仅是图形上调用show方法。它还连接到一个事件循环,以正确显示图形。应该使用plt.show例程来显示图形,不是Figure对象上调用show方法。...但是,有很多情况下,直接将图存储到文件不是屏幕呈现会更合适。本示例,我们将看到如何将图直接保存到文件不是屏幕显示。 准备工作 您需要要绘制的数据以及要存储输出的路径或文件对象。...我们创建了我们感兴趣的xy值的范围,但是如果我们简单地在这些数组的对应值评估我们的函数,我们将得到一条线上的z值,不是整个网格的值。

7500

R︱foreach+doParallel并行+联用迭代器优化内存+并行机器学习算法

,每次定义一个iterator,它都内定了“循环次数”“每次循环返回的值”,因此非常适合结合foreach的使用。...) 1、独立循环运行随机森林算法 如果我们要创建一个包含1200棵树的随机森林模型,6核CPU电脑,我们可以将其分割为六块执行randomForest函数六次,同时将ntree参赛设为200,最后再将结果合并...,类似parallel的clusterEvalQ,但是foreach一个函数里面包含了函数、包的导入过程。...,将一些外面的内存函数,写到函数之中,通过.export,不需要使用clusterExport。...(参考:R语言︱函数使用技巧(循环、if/for、switch、repeat、ifelse、stopifnot)) 2、并行的时候,如何导入多个数值型变量?

3.9K42

50-R茶话会 (十:R编程效率提升指北)

R 的运行效率 R是解释型语言,执行单个运算时, 效率与编译代码相近;执行迭代循环时, 效率较低, 与编译代码的速度可能相差几十倍。...循环中对变量进行修改尤其低效, 因为R修改某些数据类型的子集时会复制整个数据对象。(这个在前面提到过) R以向量、矩阵为基础运算单元, 进行向量、矩阵运算时效率很高, 应尽量采用向量化编程。...提高R 运行效率的几个策略 2.1 尽量使用已有函数及向量化 计算总和、元素乘积或者每个向量元素的函数变换时, 应使用相应的函数,如sum, prod, sqrt, log等。...所谓显式循环,也就是代码不直接调用for 或while 这些循环函数。...使用apply 函数 apply 包括apply, sapply, lapply, tapply, vapply,比如可以使用它们对向量、数据框、列表、矩阵等多种类型数据进行处理。

85310
领券