mapply】的更多相关文章

apply() apply(m,dimcode,f,fargs) m 是一个矩阵. dimcode是维度编号,取1则为对行应用函数,取2则为对列运用函数. f是函数 fargs是f的可选参数集 > z <- matrix(1:6, nrow = 3) > f <- function(x) { + x/c(2, 8) + } > apply(z,1,f) #f函数得到两个元素,则为几行,竖着来的 [,1] [,2] [,3] [1,] 0.5 1.000 1.50 [2,] 0…
转自:http://blog.csdn.net/wa2003/article/details/45887055 R语言提供了批量处理函数,可以循环遍历某个集合内的所有或部分元素,以简化操作. 这些函数底层是通过C来实现的,所以效率也比手工遍历来的高效.批量处理函数有很重要的apply族函数:lapply sapply apply tapply mapply.apply族函数是高效能计算的运算向量化(Vectorization)实现方法之一,比起传统的for,while常常能获得更好的性能. ap…
一.apply函数(对一个数组按行或者按列进行计算): 使用格式为:apply(X, MARGIN, FUN, ...) 其中X为一个数组:MARGIN为一个向量(表示要将函数FUN应用到X的行还是列),若为1表示取行,为2表示取列,为c(1,2)表示行.列都计算.apply()函数的处理对象是矩阵或数组,它逐行或逐列的处理数据,其输出的结果将是一个向量或是矩阵.下面的例子即对一个随机矩阵求每一行的均值.要注意的是apply与其它函数不同,它并不能明显改善计算效率,因为它本身内置为循环运算. 示…
#mapply(函数/函数名,数据,函数相关的函数) > list(rep(1,4),rep(2,3),rep(3,2),rep(4,1)) [[1]] [1] 1 1 1 1 [[2]] [1] 2 2 2 [[3]] [1] 3 3 [[4]] [1] 4 > mapply(rep,1:4,4:1) [[1]] [1] 1 1 1 1 [[2]] [1] 2 2 2 [[3]] [1] 3 3 [[4]] [1] 4 > s <- function(n,mean,std){ +…
apply函数(对一个数组按行或者按列进行计算): 使用格式为: apply(X, MARGIN, FUN, ...) 其中X为一个数组:MARGIN为一个向量(表示要将函数FUN应用到X的行还是列),若为1表示取行,为2表示取列,为c(1,2)表示行.列都计算.示例代码:> ma <- matrix(c(1:4, 1, 6:8), nrow = 2)> ma     [,1] [,2] [,3] [,4][1,]    1    3    1    7[2,]    2    4   …
相比 lapply( )和 sapply( )在一个向量上迭代,mapply( )可以在多个向量上进行迭代.换句话,mapply 是 sapply 的多元版本:mapply(function(a, b, c) a * b + b * c + a * c,a = c(1, 2, 3), b = c(5, 6, 7), c = c(-1, -2, -3))## [1] -1 -4 -9迭代函数可以返回标量,也可以返回多元素向量.因此,就像 sapply( )一样,mapply( )也可以简化结果:d…
apply() apply(m,dimcode,f,fargs) m 是一个矩阵. dimcode是维度编号,取1则为对行应用函数,取2则为对列运用函数. f是函数 fargs是f的可选参数集 > z <- matrix(1:6, nrow = 3) > f <- function(x) { + x/c(2, 8) + } > apply(z,1,f) #f函数得到两个元素,则为几行,竖着来的 [,1] [,2] [,3] [1,] 0.5 1.000 1.50 [2,] 0…
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():清除内…
完成R Programming第三周 这周作业有点绕,更多地是通过一个缓存逆矩阵的案例,向我们示范[词法作用域 Lexical Scopping]的功效.但是作业里给出的函数有点绕口,花费了我们蛮多心思. Lexical Scopping: The value of free variables are searched for in the environment where the function was defined. 因此 make.power<-function(n){ pow<…
R语言中有几个常用的函数,可以按组对数据进行处理,apply, lapply, sapply, tapply, mapply,等.这几个函数功能有些类似,下面介绍下这几个函数的用法. Apply 这是对一个Matrix或者Array进行某个维度的运算.其格式是: Apply(数据,维度Index,运算函数,函数的参数) 对于Matrix来说,其维度值为2,第二个参数维度Index中,1表示按行运算,2表示按列运算.下面举一个例子: m<-matrix(1:6,2,3) 构建一个简单的2行3列的矩…
为什么用apply 因为我是一个程序员,所以在最初学习R的时候,当成“又一门编程语言”来学习,但是怎么学都觉得别扭.现在我的看法倾向于,R不是一种通用型的编程语言,而是一种统计领域的软件工具.因此,不能用通用型编程的思维来设计R代码.在Andrew Lim关于R和Python的对比回答中,R是一种面向数组(array-oriented)的语法,它更像数学,方便科学家将数学公式转化为R代码.而Python是一种通用编程语言,更工程化.在使用R时,要尽量用array的方式思考,避免for循环.不用循…
<header id="masthead" class="masthead" role="banner"> <nav class="navigation" role="navigation"> <!-- mobile header--> <div class="mobile-header hiddenInDesktop hidden-tablet"…
<header id="masthead" class="masthead" role="banner"> <h1 class="accessible">Fidelity Worldwide Investment</h1> <nav class="navigation" role="navigation"> <!-- mobile h…
学习下Mysql子查询IN中使用LIMIT的方法. 这两天项目里出了一个问题,mysql LIMIT使用后报错. 需求是这样的,我有3张表,infor信息表,mconfig物料配置表,maaply物料申请表,要求是读出申请表中哪些人申请哪些物料 于是,首先这样写: SELECT infor.name,infor.phone,infor.add, mconfig.mname,mapply.acount,from_unixtime(mapply.atime,'%Y-%m-%d') as 'atime…
R语言笔记 学习R语言对我来说有好几个地方需要注意的,我觉得这样的经验也适用于学习其他的新的语言. 语言的目标 我理解语言的目标就是这个语言是用来做什么的,为什么样的任务服务的,也就是设计这个语言的动机.比如C++是为系统编程服务的,java是为企业级应用服务的.R语言是用于统计分析,这样在R的系统中有大量的库(或者是package)用来实现特定的统计方法. 基本的数据类型 学习各个语言的第一步是了解这个语言的最基本的数据类型,这决定如何使用变量进行计算. 基本数据类型是直接由语言本身所定义的变…
R会把所有的对象读存入虚拟内存中.对我们大多数用户来说,这种设计可以提高与R相互的速度,但是当分析大数据集时,这种设计会降低程序运行速度有时还会产生跟内存相关的错误. 内存限制主要取决于R的build版(32位还是64位),而在32位的windows下,取决于操作系统的版本.以cannot allocate vectoe of size开头的出错信息表示无法分配充足的连续内存,而以cannot allocate vector of length开头的出错信息表示超越了地址限制(address l…
为什么用apply 因为我是一个程序员,所以在最初学习R的时候,当成"又一门编程语言"来学习,但是怎么学都觉得别扭.现在我的看法倾向于,R不是一种通用型的编程语言,而是一种统计领域的软件工具.因此,不能用通用型编程的思维来设计R代码.在Andrew Lim关于R和Python的对比回答中,R是一种面向数组(array-oriented)的语法,它更像数学,方便科学家将数学公式转化为R代码.而Python是一种通用编程语言,更工程化.在使用R时,要尽量用array的方式思考,避免for循…
data.table包主要特色是:设置keys.快速分组和滚得时序的快速合并.data.table主要通过二元检索法大大提高数据操作的效率,同时它也兼容适用于data.frame的向量检索法. require(data.table) ## Loading required package: data.table 1.创建data.table格式数据 类似于data.frame数据的创建,使用data.table函数 (DF = data.frame(x=c("b","b&qu…
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 分箱法在实际案例操作过程中较为常见,能够将一些数据离散化,等级化,比如年龄段,我们并不想知道确切的几岁,于是乎可以将其分组.分段. 基础函数中cut能够进行简单分组,并且可以用于等宽分箱法. cut函数:cut(x, n):将连续型变量x分割为有着n个水平的因子.(参考来自: R语言︱数据集分组.筛选) [plain] view plain c…
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 后续加更内容: 应用一:if族有哪些成员呢?--if/ifelse/stopifnot 应用二:如何在循环中,实时输出时间消耗? ------------------------------------ 1.循环 ##循环for iris allzl=unique(iris$setosa) for (i in 1:2){ pp=iris[iri…
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:apply族功能强大,实用,可以代替很多循环语句,R语言中不要轻易使用循环语句. 函数名 功能 特点 apply 按行.列运算均值.求和.众数等 简单运算 tapply=table apply 在apply之上加入table功能,可以分组汇总 table结合,可以分组汇总 lapply=list apply 都需要数据框格式,可以与l…
一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面要综述的包主要分为以下几个部分: 1) 多元数据可视化(Visualising multivariate data): 绘图方法: 基本画图函数(如:pairs().coplot())和 lattice包里的画图函数(xyplot().spl…
在数据分析中,整理数据的本质可以归纳为:对数据进行分割(Split),然后应用(Apply)某些处理函数,最后将结果重新组合(Combine)成所需的格式返回,简单描述为:Split - Apply - Combine.这个过程可以通过Basic包的apply家族函数来实现,apply家族函数包括了apply.sapply.lapply.tapply.aggregate等,可以应用于数据分析的各个阶段.plyr包是apply家族函数的升级,使用plyr包可以实现:在一个函数内同时完成“Split…
Question: So we are used to say to every R new user that "apply isn't vectorized, check out the Patrick Burns R Inferno Circle 4" which says (I quote): A common reflex is to use a function in the apply family. This is not vectorization, it is lo…
一些函数不知道什么意思要查,看数值例子,做笔记,知道函数的功能,函数和返回值. 网页上查找关键词,巧用查找(ctrl+F) 数据读取处理,有read.table   read R-读取数据(导入csv,txt,excel文件) read.table函数:read.table函数以数据框的格式读入数据,所以适合读取混合模式的数据,但是要求每列的数据数据类型相同. read.table读取数据非常方便,通常只需要文件路径.URL或连接对象就可以了,也接受非常丰富的参数设置: file参数:这是必须的…
转自:http://blog.fens.me/r-apply/ 前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言本身来实现的,而向量操作是基于底层的C语言函数实现的,从性能上来看,就会有比较明显的差距了.那么如何使用C的函数来实现向量计算呢,就是要用到apply的家族函数,包括apply, sapply, tapply, mapply, lapp…
基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面要综述的包主要分为以下几个部分: 1) 多元数据可视化(Visualising multivariate data): 绘图方法: 基本画图函数(如:pairs().coplot())和lattice包里的画图函数(xyplot().splom())可以画成对列表的二维散点图,3维密度图.car包里的scatterplot.matrix()函数提供更强大的二维散点图的画法.cwhmisc包集合里的…
table可统计数据的频数 tapply可根据因子.向量和要计算的函数计算 > class<-c(1,2,3,2,1,2,1,3) > class[1] 1 2 3 > c(81,65,72,88,73,91,56,90)->student> class[1] 1 2 3 2 1 2 1 3 >factor(class)->class > tapply(student,class,mean)       1        2        370.00…
转自:https://www.cnblogs.com/nanhao/p/6674063.html 1.apply函数——对矩阵 功能是:Retruns a vector or array or list of values obtained by applying a function to margins of an array or matrix. 就是说apply把一个function作用到array或者matrix的margins(可以理解为数组的每一行或者每一列)中,返回值时vecto…
之前,我们讨论过可以使用 for 循环,在一个向量或列表上进行迭代,重复执行某个表达式.但是在实践中,for 循环往往是最后的选择,因为每次迭代都是相互独立的,所以我们可以使用更简洁更方便的读写方式来实现同样的效果.举个例子,以下代码使用 for 循环创建了一个列表,它由 3 个相互独立.服从正态分布的随机向量构成,其长度由向量 len 确定:len <- c(3, 4, 5)# 首先,在环境中创建一个列表x <- list()# 然后,使用 for 循环根据各自的长度生成相应的随机向量for…