(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] 1.666667 3.333333 3.000000 4.000000
> apply(m,2,sd)
[1] 1.290994 1.414214 1.290994
> apply(m,1:2,function(x) x*2)
     [,1] [,2] [,3]
[1,] 2 2 6
[2,] 4 8 8
[3,] 6 2 10
[4,] 8 4 12
> apply(m,2,table) #返回的是列表
 [ [1] ]

1 2 3 4
1 1 1 1
……
> apply(m, 1, stats::quantile) #各行的分位数,返回矩阵
     [,1] [,2] [,3] [,4]
0% 1 2 1 2
25% 1 3 2 3
50% 1 4 3 4
75% 2 4 4 5
100% 3 4 5 6

(2) by
 
  by函数是tapply的一个面向用户的友好包装版,是一个使用因子来对数据框按行进行分组并对每个子集运用函数的方法。它的对象数据被默认强制转换为数据框。它返回一个 类属性为by的对象,simplify i= false是,返回值是列表,否则是列表或数组。
by(data, INDICES, FUN, ..., simplify = TRUE)

#例 使用著名的鸢尾花数据iris
> attach(iris)
> head(iris)
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> by(iris[, 1:4], Species, mean)
Species: setosa
Sepal.Length Sepal.Width Petal.Length Petal.Width
       5.006 3.428 1.462 0.246
---------------------------------------------------------
Species: versicolor
Sepal.Length Sepal.Width Petal.Length Petal.Width
       5.936 2.770 4.260 1.326
---------------------------------------------------------
Species: virginica
Sepal.Length Sepal.Width Petal.Length Petal.Width
       6.588 2.974 5.552 2.026

原文:http://site.douban.com/182577/widget/notes/10567181/note/245242931/

R语言数据转换(split-apply-combin…相关推荐

  1. R语言数据转换——plyr包

    plyr包简介 plyr包是Hadley Wickham为解决split – apply – combine问题而写的一个包,其动机在与提供超越for循环和内置的apply函数族的一个一揽子解决方案. ...

  2. R语言作图——Split violin plot

    原创:黄小仙 最近小仙同学在好几篇文献里看到了这种小提琴图,暂时就肤浅地认为这是作者为了更好地比较对照组与实验组的差别,所以将同一个基因的小提琴图各画了一半,放在一起.为了跟上可视化的潮流,小仙也来尝 ...

  3. R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)

    R语言︱数据集分组 大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较. 一.日期分组 1.关于时间的包都有很多 ...

  4. R语言入门第五集 实验四:数据分析

    R语言入门第五集 实验四:数据分析 一.资源 [R语言]R语言函数练习--东北大学大数据班R实训第四次作业 R语言:常用apply函数(apply,tapply,sapply,lapply)用法介绍 ...

  5. R语言double数据转成numeric类型

    R语言中numeric数据转化问题 关于R语言数据转化的问题,总是我使用R计算的拦路虎,每次用的时候都要重新试几次.今天突然心血来潮,记录一下,R语言数据转换的几种常用方法,以供需要的人和自己以后学习 ...

  6. R语言的数字信号处理

    为何用R 对于算法原型来讲,实际上MATLAB才是数字信号甚至包括CV数据处理的最好工具,不过MATLAB实在太厚重了,而且从正规使用来讲成本相当的高,公司大概是不会拨出这个预算的,个人更不可能了.考 ...

  7. R语言基础之第六部分 分类(史上最全含ddply、aggregate、split、by)

    R语言基础之第六部分 分类(史上最全含ddply.aggregate.split.by) 数据: 某市2014年-2018年空气质量指数日数据,需要按年分类计算每年 warm值为1和 0的均值. 数据 ...

  8. 「杂谈」如何写好R语言apply家族函数

    感觉好久没发有关R语言的博客了.这一年来,我着手开发了两个R包,但基本没怎么发博客. 原因也很简单,可能是我个人的私心吧,或者说是典型的"理论研究者"的"通病" ...

  9. R语言笔记8:两个重要函数——用来分解数据框的split和用来查看对象的str

    R语言基础系列: 你知道R中的赋值符号箭头(<-)和等号(=)的区别吗? 1数据类型(向量.数组.矩阵. 列表和数据框) 2读写数据所需的主要函数.与外部环境交互 3数据筛选--提取对象的子集 ...

最新文章

  1. 【BDTC 2015】深度学习分论坛:DL的图像识别、语音识别应用进展及MxNet开源框架设计
  2. 美酒换咖啡用java编写_Java 配 Shell 等于美酒加咖啡
  3. Coursera课程Python for everyone:chapter9
  4. 用session实现html登录页面跳转页面跳转页面跳转,js判断登录与否并确定跳转页面的方法...
  5. 性能测试之JMeter配置元件【计数器】
  6. 成绩查看_2019一级建造师成绩已公布,赶紧来查看成绩吧
  7. mycat-sublun数据库分片
  8. Python之进程、线程、锁
  9. [LeetCode]Linked List Cycle
  10. ESLint 规则详解(二)
  11. 利用caffe的Python接口生成prototxt文件
  12. java 7 update 79下载_java 7下载|java运行环境(JDK 7 Update 67)官方版下载 - 3322软件站
  13. 线性代数辅导讲义(第五章 特征值特征向量)
  14. 武汉大学计算机学院徐霜,物联网工程专业建设与实践教学研究_余琍
  15. 模拟简单 LeetCode6070. 计算字符串的数字和
  16. python网上下载视频,音乐
  17. 如何开展性能测试工作
  18. [leetcode]Binary Tree Level Order Traversal II
  19. 联想网站诊断分析(12.10)
  20. 如何从bitbucket到github的所有分支移动git存储库?

热门文章

  1. 《数据整理实践指南》一第1章 从头说起:什么是噪音数据
  2. 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导
  3. 命令行实现更强大的php交互
  4. 例题4-5 引发的static知识点
  5. java拷贝函数_Java的深拷贝与浅拷贝的几种实现方式
  6. 2021宿州市地区高考成绩排名查询,2021年宿州市所有的高中排名,宿州市高中高考成绩排名出炉...
  7. 信息系统管理工程师_关于备考信息系统项目管理师、系统集成项目管理工程师考试几点小建议...
  8. 安装Python3的工具包报Microsoft Visual C++ 14.0 is required的错误
  9. php odbc 分页,用php实现odbc数据分页显示一例_php技巧
  10. 2+22+222+2222(直到n个2的精确计算)