5.4 控制流

 语句(statement)是一条单独的R语句或一组复合语句(包含在花括号{ } 中的一组R语

句,使用分号分隔);

 条件(cond)是一条最终被解析为真(TRUE)或假(FALSE)的表达式;

 表达式(expr)是一条数值或字符串的求值语句;

q    序列(seq)是一个数值或字符串序列。

q  5.4.1重复和循环

q  1.for结构  循环重复地执行一个语句,直到某个变量的值不再包含序列seq中为止

q  语法:for(var in seq) statement

q  2.while结构  循环重复地执行一个语句,知道条件不为真为止

q  语法:while(cond) statement

q  5.4.2条件执行

q  1.if-else结构  控制结构if-else在某个给定条件为真时执行语句。也可以同时在条件为假时执行另外的语句。

q  语法:if (cond) statement

q        If(cond)statement1 else statement2

q  2.ifelse结构 是if-else结构比较紧凑的向量化版本

q  语法:ifelse(cond,statement1,statement2) #cond=TRUE 执行statement1;FALSE时执行statement2

q  3.switch结构 根据一个表达式的值选择语句执行

q  语法:switch(expr,…)

q  5.5用户自编函数

q  结构:myfunction<- function(arg1,arg2,…){

q    statements

q    return

q  }

q  注:一旦开始编写无论任何长度和复杂度的函数,优秀调试工具的重要性都会凸显出来。R中有许多实用的内建调试函数,也有许多用户贡献包提供了额外的功能。关于这个话题,一份优秀的参考资料是DuncanMurdoch整理的“Debugging in R”(http://www.stats.uwo.ca/faculty/murdoch/software/debuggingR)。

q  5.6整合与重组 (aggregate & reshape)

q  5.6.1转置

使用函数t()即可对一个矩阵或数据框进行转置。对于后者,行名将成为变量(列)名。

5.6.2整合数据

在R中使用一个或多个by变量和一个预先定义好的函数来折叠(collapse)数据是比较容易的。

调用格式为:aggregate(x,by,FUN)

其中x是待折叠的数据对象,by是一个变量名组成的列表,这些变量将被去掉以形成新的观测,

而FUN则是用来计算描述性统计量的标量函数,它将被用来计算新观测中的值。

5.6.3reshape包

reshape包是一套重构和整合数据集的绝妙的万能工具。

1、  融合

数据集的融合是将它重构为这样一种格式:每个测量变量独占一行,行中带有要唯一确定这个测量所需的标识符变量。例:

Library(reshape)

Md<-melt(mydata,id=(c(“id”,””time”))))

2、  重铸

cast()函数读取已融合的数据,并使用你提供的公式和一个(可选的)用于整合数据的函数将其重塑。调用格式为:newdata<-cast(md,formula,FUN)

其中的md为已融合的数据,formula描述了想要的最后结果,而FUN是(可选的)数据整合函数。

R in action读书笔记(2)-第五章:高级数据管理(下)的更多相关文章

  1. 《LINUX内核设计与实现》读书笔记之第五章

    第五章——系统调用 5.1 与内核通信 1.为用户空间提供一种硬件的抽象接口 2.保证系统稳定和安全 3.除异常和陷入,是内核唯一的合法入口. API.POSIX和C库 关于Unix接口设计:提供机制 ...

  2. Linux内核分析 读书笔记 (第五章)

    第五章 系统调用 5.1 与内核通信 1.调用在用户空间进程和硬件设备之间添加了一个中间层.该层主要作用有三个: 为用户空间提供了硬件的抽象接口. 系统调用保证了系统的稳定和安全. 实现多任务和虚拟内 ...

  3. 《深入理解java虚拟机》读书笔记四——第五章

    第五章 调优案例分析与实战

  4. R in action读书笔记(20)第十五章 处理缺失数据的高级方法

    处理缺失数据的高级方法 15.1 处理缺失值的步骤 一个完整的处理方法通常包含以下几个步骤: (1) 识别缺失数据: (2) 检查导致数据缺失的原因: (3) 删除包含缺失值的实例或用合理的数值代替( ...

  5. R in action 读书笔记(1)--第五章:高级数据管理

    5.2.1数学函数 函数 描述 abs(x) 绝对值 sqrt(x) 平方根 ceiling(x) 不小于x的最小整数 floor(x) 不大于x的最大整数 trunc(x) 向0的方向截取的X中的整 ...

  6. 《R语言实战》读书笔记--第五章 高级数据管理

    本章内容: 数学和统计函数 字符处理函数 循环和条件执行 自编函数 数据整合与重塑 5.1一个数据处理难题 5.2数值和字符处理函数 分为数值函数和字符串函数,下面是数学函数截图: ceiling.f ...

  7. R in action读书笔记(22)第十六章 高级图形进阶(下)

    16.2.4 图形参数 在lattice图形中,lattice函数默认的图形参数包含在一个很大的列表对象中,你可通过trellis.par.get()函数来获取,并用trellis.par.set() ...

  8. R in action读书笔记(5)-第七章:基本统计分析

    7.1描述性统计分析 > vars<-c("mpg","hp","wt") > head(mtcars[vars])    ...

  9. R in action读书笔记(21)第十六章 高级图形进阶(上)

    16.1 R 中的四种图形系统 基础图形函数可自动调用,而grid和lattice函数的调用必须要加载相应的包(如library(lattice)).要调用ggplot2函数需下载并安装该包(inst ...

随机推荐

  1. SSH三大框架整合配置详细步骤(3)

    5 配置Spring2.5 5.1 基础配置 1)        导入spring包.下载spring-framework-2.5.6并解压后,在spring-framework-2.5.6" ...

  2. visio 2010 修改 默认字体 字号大小 方法[整理]

    [转自]http://www.cnblogs.com/vegaliming/archive/2012/08/09/2630568.html 1.新建一个模具 2.将常用的图形放到这个模具中 3.对每个 ...

  3. Synthesizing Images of Humans in Unseen Poses

    Synthesizing Images of Humans in Unseen Poses balakg/posewarp-cvpr2018 https://github.com/balakg/pos ...

  4. click event not triggered on bootstrap modal

    I am trying to catch the click event when save changes is pushed. For some reason i can't catch the ...

  5. GET 与 POST 的理解

    1 HTTP请求      超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信.      HTTP 的工作方式是客户机与服务器之间的请求-应答协议.      比如,客户端(浏览器) ...

  6. CSYZDay2模拟题解

    T1.rotate [问题描述] ZYL有N张牌编号分别为1, 2,……,N.他把这N张牌打乱排成一排,然后他要做一次旋转使得旋转后固定点尽可能多.如果第i个位置的牌的编号为i,我们就称之为固定点.旋 ...

  7. python 操作memercache类库

    pip install python-memcached pip install  pymemcache pip install   python-libmemcached

  8. 【转】浏览器中输入url后发生了什么

    原文地址:http://www.jianshu.com/p/c1dfc6caa520 在学习前端的过程中经常看到这样一个问题:当你在浏览器中输入url后发生了什么?下面是个人学习过程中的总结,供个人复 ...

  9. UI: 网易新闻实现

      #pragma mark-(AppDelegate.H文件)-------------------------------------------------------------------- ...

  10. 【181】IDL 代码从 Windows 转移到 Linux

    文件夹分隔符,Windows 是“/”,Linux 是“\”,按照程序,需要修改 通过 bash 运行 *.pro 文件,貌似只能运行没有参数的,有参数的需要写入到文件中 idl 的文件不能用大写字母 ...