apply() 函数算是R语言中很基础的一个函数,同时还有 sapply()  lapply()  tapply() 函数精简了 apply() 函数的用法。

apply() 函数是一个很R语言的函数,可以起到很好的替代冗余的for循环的作用,R语言中的循环操作for和while都是基于R语言本身来实现的,而向量操作是基于底层的C语言函数实现的,所以使用apply()函数家族进行向量计算时高性价比的。

apply() 函数可以面向数据框、列表、向量等,同时任何函数都可以传递给 apply() 函数。

apply() 函数

apply()函数的用法如下

apply(X, MARGIN, FUN)
其中:
X:一个数据或者矩阵
MARGIN:两个数值1或者2决定对哪一个维度进行函数的计算,MARGIN没有默认值
MARGIN = 基于行进行操作
MARGIN = 基于列进行操作
MARGIN = c(, ) 对行和列都进行操作
FUN:使用哪种操作,内置的函数有mean() medium() sum() min() max() 当然还有用户自定义的函数

lapply() 函数

lapply() 函数中多出来的 l 代表的意思是 list。所以 lapply() 和 apply() 的区别在于输出格式,lapply() 的输出格式是一个 list,所以 lapply() 函数不需要 MARGIN 参数。

lapply(X, FUN)
其中:
X:一个向量或者一个对象
FUN:对X中的每个元素进行操作的函数

由于 lapply() 的输出结果是以 list 形式给出的,为了方便,我们使用 unlist() 函数进行整合。

sapply() 函数

sapply() 函数做的事情和 lapply() 函数是一样的,可以理解为是一个简化的 lapply(),返回的是一个向量(vector),使得对解读更加友好,其使用方法和 lapply() 一样。

sapply() 多了两个参数:

simplify:simplify = T 可以将输出结果数组化;simplify = F 此时输出结果和 lapply() 一样

use.NAMES = T 可以设置字符串的为字符名

tapply() 函数

tapply() 函数是一个拓展函数,可以对一个向量里面进行分组统计操作。

类似于 dplyr 包中的 group_by() + summarise()

tapply(X, INDEX, FUN = NULL)
其中
X:一个对象,一般是向量
INDEX:一个包含分类因子的列表(list)
FUN:对X里面每个元素进行操作的函数

数据分析的一部分工作就是分组进行统计,举例来说,根据一个特性来对一个群体进行分组计算平均值。

使用 dplyr 包的操作如下

最新文章

  1. 自动化集成部署udeployer 批量统一安装一键部署
  2. centos7 cannot find a valid baseurl for repo base (转载)
  3. 使用Code::blocks在windows下写网络程序
  4. Vware Workstation pro 12|虚拟机
  5. idea使用心得(1)-快捷键用法
  6. 【iOS】Quartz2D练习-动态改变属性值
  7. ID生成器的一种可扩展实现方案
  8. JSP---JSP中4个容器-pageContext使用
  9. hdu 1258 DFS
  10. for语句的嵌套(示例及练习)
  11. Android手机便携式wifi的使用及无线数据传输(主要针对XP系统)
  12. Lua 环境结构 --Linux
  13. wcf事务(随记)
  14. Linux基本符号
  15. WEB安全:Tomcat 只可通过域名访问,禁止通过 IP 访问
  16. springboot学习章节代码-Spring MVC基础
  17. 【代码笔记】iOS-NSLog的使用
  18. nyoj311(完全背包变形)
  19. 转载VC6.0 子窗口和父窗口
  20. css网页中设置背景图片的方法详解

热门文章

  1. Exceptionless - 本地搭建
  2. 我是如何一步步编码完成万仓网ERP系统的(七)产品库设计 3.品牌图片跨域上传
  3. PAT 1024 科学记数法
  4. vue+element打印页面功能
  5. Easypoi实现单模板生成多页wrod文档
  6. URL&HTTP协议
  7. C语言实现归并排序
  8. Codeforces Round #605 (Div. 3)
  9. MMORPG服务器场景中的aoi算法思考
  10. flask实战-个人博客-数据库-生成虚拟数据 --