使用 apply 函数族】的更多相关文章

为什么用apply 因为我是一个程序员,所以在最初学习R的时候,当成“又一门编程语言”来学习,但是怎么学都觉得别扭.现在我的看法倾向于,R不是一种通用型的编程语言,而是一种统计领域的软件工具.因此,不能用通用型编程的思维来设计R代码.在Andrew Lim关于R和Python的对比回答中,R是一种面向数组(array-oriented)的语法,它更像数学,方便科学家将数学公式转化为R代码.而Python是一种通用编程语言,更工程化.在使用R时,要尽量用array的方式思考,避免for循环.不用循…
为什么用apply 因为我是一个程序员,所以在最初学习R的时候,当成"又一门编程语言"来学习,但是怎么学都觉得别扭.现在我的看法倾向于,R不是一种通用型的编程语言,而是一种统计领域的软件工具.因此,不能用通用型编程的思维来设计R代码.在Andrew Lim关于R和Python的对比回答中,R是一种面向数组(array-oriented)的语法,它更像数学,方便科学家将数学公式转化为R代码.而Python是一种通用编程语言,更工程化.在使用R时,要尽量用array的方式思考,避免for循…
转自:http://blog.fens.me/r-apply/ 前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言本身来实现的,而向量操作是基于底层的C语言函数实现的,从性能上来看,就会有比较明显的差距了.那么如何使用C的函数来实现向量计算呢,就是要用到apply的家族函数,包括apply, sapply, tapply, mapply, lapp…
之前,我们讨论过可以使用 for 循环,在一个向量或列表上进行迭代,重复执行某个表达式.但是在实践中,for 循环往往是最后的选择,因为每次迭代都是相互独立的,所以我们可以使用更简洁更方便的读写方式来实现同样的效果.举个例子,以下代码使用 for 循环创建了一个列表,它由 3 个相互独立.服从正态分布的随机向量构成,其长度由向量 len 确定:len <- c(3, 4, 5)# 首先,在环境中创建一个列表x <- list()# 然后,使用 for 循环根据各自的长度生成相应的随机向量for…
R 作为一种向量化的编程语言,一大特征便是以向量计算替代了循环计算,使效率大大提升.apply函数族正是为解决数据循环处理问题而生的 -- 面向不同数据类型,生成不同返回值的包含8个相关函数的函数族. 为何要用apply? 在使用 R 时,要尽量用 array 的方式思考,避免 for 循环,写过多的 for 循环代码,最后把 R 代码写的跟 C 似得说明你没有进入 R 的思考方式,是一种费力不讨好的行为.那么不用循环怎么实现迭代呢?apply函数族是一把利器,它不是一个函数,而是一族功能类似的…
参考于:http://blog.fens.me/r-apply/ 1. apply的家族函数 2. apply函数 apply函数是最常用的代替for循环的函数.apply函数可以对矩阵.数据框.数组(二维.多维),按行或列进行循环计算,对子元素进行迭代,并把子元素以参数传递的形式给自定义的FUN函数中,并以返回计算结果. 函数定义: apply(X, MARGIN, FUN, ...) 参数列表: X:数组.矩阵.数据框 MARGIN: 按行计算或按按列计算,1表示按行,2表示按列 FUN:…
  (1)    apply apply函数通过对数组,矩阵,或非空维数值的数据框的“边缘”(margin)即行或列运用函数.返回值为向量,数组或列表.   函数形式 apply(X, MARGIN, FUN, ...) 其中,X:数组(矩阵): MARGIN:函数要作用的下标向量,对于矩阵,1表示行,2表示列,1:2表示行和列: FUN:函数名或函数表达式.     ##例 > m<-matrix(c(1:4,1,4,1:6),ncol=3) > apply(m,1,mean) [1]…
R语言︱数据集分组 大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较. 一.日期分组 1.关于时间的包都有很多很好的日期分组应用. 2.cut()函数 cut(x, n):将连续型变量x分割为有着n个水平的因子 cut(x, breaks, labels = NULL, include.lowest = FALSE, right = TRUE, dig.lab = 3, ordered_result = F…
前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言本身来实现的,而向量操作是基于底层的C语言函数实现的,从性能上来看,就会有比较明显的差距了.那么如何使用C的函数来实现向量计算呢,就是要用到apply的家族函数,包括apply, sapply, tapply, mapply, lapply, rapply, vapply, eapply等. 目录…
1.内存查看 memory.limit():查看内存大小 memory.limit(n):申请内存大小 memory.size(NA):查看内存大小 memory.size(T):查看已分配的内存 memory.size(F):查看已使用的内存 2.内存申请 在Windows开始菜单运行: Rgui -max-mem-size 8GB 与在R GUI中执行: memory.limit(8) 都能申请8GB使用内存 3.垃圾清除 rm(x):从workplace中删除变量/文件x gc():清除内…
Iris的R语言命令工具箱(1) 最近在做数据分析,使用了R语言做了些数据处理和可视化,在此记下遇到过的问题.应用过的命令.处理方式以及工具包- *版权声明:本文为博主原创文章,转载请注明本文地址.http://www.cnblogs.com/o0Iris0o/p/6365927.html* 1.CSV格式文件数据导入导出 --------------- ** 1.1 导入CSV数据(导入CSV数据之后储存为"Data Frame数据框"数据结构)** ## 导入csv数据 ## 第一…
http://blog.fens.me/series-r/ R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器.随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长.现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言. 要成为有理想的极客,我们不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创…
R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字. 基本命令要么是表达式(expressions)要么就是 赋值(assignments). 命令可以被 (;)隔开,或者另起一行. 基本命令可以通过大括弧({和}) 放在一起构成一个复合表达式(compound expression). 一行中,从井号(#)开始到句子收尾之间的语句就是是注释. R是动态类型.强类型的语…
R语言服务器程序 Rserve详解 http://blog.fens.me/r-rserve-server/ Rserve的R语言客户端RSclient https://blog.csdn.net/u011955252/article/details/65442783 http://blog.fens.me/series-r/ R的极客理想系列文章 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域…
什么是DataFrame 引用 r-tutor上的定义: DataFrame 是一个表格或者类似二维数组的结构,它的各行表示一个实例,各列表示一个变量. 没错,DataFrame就是类似于Excel表格和MySQL数据库一样是一个结构化的数据体.而这种结构化的数据体是当代数据流编程中的中流砥柱,几乎所有先进算法的载体都是DataFrame,比如现在我们耳熟能详的逻辑回归算法.贝叶斯算法.支持向量机算法.XGBoost算法等等都建立在这个数据流编程的基础之上,我们可以在R.Python.Scala…
正如前面展示的,lapply( )函数接收一个向量和一个函数作为输入参数.它将这个函数应用到向量中的每个元素,再将结果以列表的形式返回.当每次迭代都是相互独立时,这个函数就非常好用.因为在这种情况下,我们不需要构建一个显式迭代器来明确每步迭代过程.lapply( )不仅适用于向量,也适用于列表.假设我们有一份学生列表:students <- list(a1 = list(name = "James", age = 25,gender = "M", intere…
for 循环通过迭代一个给定向量或列表,重复执行某个表达式.for 循环的语法是这样的:for (var in vector) {expr}var 遍历 vector 中的各个元素值,expr 被反复迭代执行.如果 vector 中有 n 个元素,那么上述循环就等价于:var <- vector[[1]]exprvar <- vector[[2]]expr...var <- vector[[n]]expr例如,我们使用迭代变量 i 来构造一个在 1:3 上迭代的循环,并且每次迭代,都把变…
R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字. 基本命令要么是表达式(expressions)要么就是 赋值(assignments). 命令可以被 (;)隔开,或者另起一行. 基本命令可以通过大括弧({和}) 放在一起构成一个复合表达式(compound expression). 一行中,从井号(#)开始到句子收尾之间的语句就…
[R笔记]R语言函数总结   R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字. 基本命令要么是表达式(expressions)要么就是 赋值(assignments). 命令可以被 (;)隔开,或者另起一行. 基本命令可以通过大括弧({和}) 放在一起构成一个复合表达式(compound expression). 一行中,从井号(…
1.变量的重命名 (1)交互式编辑器修改变量名 若要修改数据集x中的变量名,键入fix(x)即可打开交互式编辑器的界面.若数据集为矩阵或数据框,单击交互式编辑器界面中对应要修改的变量名,可手动输入新的变量名:若数据集为列表,则交互式编辑界面为一个记事本,只要修改“.Names”之后对应的变量名,即可修改变量名. (2)rename()函数修改变量名 可用于修改数据框和列表的变量名,但不能用于修改矩阵的变量名  格式:dataframe<-rename(dataframe,c(oldname=&quo…
如何高效地学好R语言? 学R语言主要在于5点三阶段: 第一阶段有一点:基础的文件操作(read.*, write.*).数据结构知识,认识什么是数据框(data.frame).列表(list).矩阵(matrix).向量(vector),如何提取(包括which, [ ]等).置换(t, matrix等).删除(-, which等).运算(+, -, *, / , %%, %/%等).转换(as.*).修改(edit, fix等)数据(包括单个数.行.列.表.变量),安装包.调用包以及sessi…
并行执行 Yes! Well done! Socket clusters are initialized without variables, so a_global_var wasn't found. Fork clusters take a copy of global variables, but changes made after the cluster is created are not copied to each node. parallel包 > # A global var…
原博: R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字. 基本命令要么是表达式(expressions)要么就是 赋值(assignments). 命令可以被 (;)隔开,或者另起一行. 基本命令可以通过大括弧({和}) 放在一起构成一个复合表达式(compound expression). 一行中,从井号(#)开始到句子收尾之间…
第5章工欲善其事.必先利其器 代码,是延伸我们思想最好的工具. 第6章基础编程--用别人的包和函数讲述自己的故事 6.1编程环境 1.R语言的三段论 大前提:计算机语言程序=算法+数据结构 小前提:R语言不过是计算机语言的一种 结论:R语言约等于基础编程+数据对象 2.运行机制 RStudio=记事本+R Console 6.2Mini案例 学生文理分科小案例(还有问题) R仅有的命令形式是返回结果的函数和表达式 赋值是一种常见的操作:对象的读取.转换.模型的建立等 赋值给新的对象,往往也意味着…
前三章中列出的大多数示例代码都很短,并没有涉及到复杂的操作.从本章开始将会把前面介绍的数据结构组合起来,构成真正的程序.大部分程序是由条件语句和循环语句控制,R 语言中的条件语句(if-else)和 C 语言中类似此处就不再介绍,循环语句包括 for 和 while 控制块.循环是社交网络分析的主旋律,比如使用 for 循环遍历分析网络中的每一个节点.当网络规模足够大时,并行处理又变得十分必要.熟练掌握本章的内容后,你的程序将会优雅而自然. 循环语句 while for 循环控制 apply()…
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:apply族功能强大,实用,可以代替很多循环语句,R语言中不要轻易使用循环语句. 函数名 功能 特点 apply 按行.列运算均值.求和.众数等 简单运算 tapply=table apply 在apply之上加入table功能,可以分组汇总 table结合,可以分组汇总 lapply=list apply 都需要数据框格式,可以与l…
笔者寄语:apply族功能强大,实用,可以代替很多循环语句,R语言中不要轻易使用循环语句. 原文链接: https://blog.csdn.net/sinat_26917383/article/details/51086663 函数名 功能 特点apply 按行.列运算均值.求和.众数等 简单运算tapply=table apply 在apply之上加入table功能,可以分组汇总 table结合,可以分组汇总lapply=list apply 都需要数据框格式,可以与list合用,返回仍是li…
  本文原创,转载请注明出处,本人Q1273314690(交流学习) 总结: 就是MARGIN决定了你的FUN调用几次,每次传递给你的是什么维度的内容,而...是传递给FUN的(每次调用的时候都会被传递给FUN).apply的返回值结果可能是向量,数组(含矩阵)或列表(具体要根据条件分类讨论,但实际上我们没有必要,直接看一下返回的结果就知道是什么类型了)   apply {base} Description Returns a vector or array or list of values…
在JavaScript 中,call.apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这三个方法进行详细的讲解,并列出几个经典应用场景. call(thisArgs [,args...]) 该方法可以传递一个thisArgs参数和一个参数列表,thisArgs 指定了函数在运行期的调用者,也就是函数中的 this 对象,而参数列表会被传入调用函数中.thisArgs 的取值有以下4种情…
前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始我们将讲述一些SQL Server中早已出现的新语法,简短的内容,深入的理解,Always to reivew the basics. 初探APPLY运算符 APPLY运算符是一个非常强大的表运算符,但是APPLY不是标准的,相对应的标准叫做LATERAL,但是此标准并未在SQL Server中实现…