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. 汉诺塔算法c++源代码(递归与非递归)[转]

     算法介绍: 其实算法非常简单,当盘子的个数为n时,移动的次数应等于2^n - 1(有兴趣的可以自己证明试试看).后来一位美国学者发现一种出人意料的简单方法,只要轮流进行两步操作就可以了.首先把三根柱 ...

  2. UPDATE command denied DELETE

    可用磁盘空间不足 支持SELECT information_schema. TABLES

  3. css class嵌套

    css 代码: <style> .chose_bonus { font-size:9px;width:400px;border: 2px solid #dddddd;margin-top: ...

  4. Lightoj 1014 - Ifter Party

    I have an Ifter party at the 5th day of Ramadan for the contestants. For this reason I have invited  ...

  5. i节点,容易被人遗忘的节点

    部分内容转自点击打开链接 点击打开链接 前段时间做了RHCE的一道题,是iSCSi的,后来在挂载的时候说是磁盘被占用.当时资料找了很多结果还是没有找到解决方法.反倒是发现了这个inode,也是关于被占 ...

  6. sphinx是支持结果聚类的

    Coreseek 4.1 参考手册 / Sphinx 2.0.1-beta Sphinx--强大的开源全文检索引擎,Coreseek--免费开源的中文全文检索引擎 版权 © 2001-2011 And ...

  7. django 初试

    /************************************************************************************** * django 初试 ...

  8. 使用java发送HTTP请求

    public class Test { public static void main(String[] args) { BufferedReader in = null; String result ...

  9. 微型ORM:PetaPoco 学习资料整理

    github地址:https://github.com/CollaboratingPlatypus/PetaPoco petapoco 实体中字段去掉关联(类似于EF中的NotMap) 微型ORM:P ...

  10. 【转载】CAS操作

    [本文转载]http://blog.csdn.net/hsuxu/article/details/9467651 CAS CAS:Compare and Swap, 翻译成比较并交换. java.ut ...