R in action读书笔记(2)-第五章:高级数据管理(下)
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是(可选的)数据整合函数。
最新文章
- java解析XML文件
- 第五章 搭建S3C6410开发板的测试环境
- 部署Service Manager 2012遇到的2个问题
- RabbitMQ 记录
- POJ 2887 Big String(块状链表)
- javascript,css延迟加载器
- php中将文中关键词高亮显示,快捷方式可以用正则
- Android中显示网页的多种方式
- Robot Framework自动化测试(二)第一个用例
- iOS6 自动布局 入门–Auto Layout(转)
- Genymotion下载失败解决方法
- 时间序列预测之--ARIMA模型
- k-临近算法学习
- [项目推荐] Corcel 让你在 WordPress 中使用 Laravel
- 搭建vue脚手架
- spring开启事务时启动报错SAXParseException
- Ubuntu下配置使用mysql
- .NET本质论 用类型编程
- geiUItabBarItem设置图片颜色和title颜色
- 修改的select
热门文章
- Python安装Mysql驱动出错解决(最新出炉)
- Restrictions.or多个条件用法
- 移动端和PC端有什么区别
- H5的localStorage简单存储删除
- redis与spring整合&#183;
- 深入分析linux调度机制
- 线程之间的通信socketpair【学习笔记】【原创】
- Windows7下安装golang语言开发环境和revel框架
- bzoj 2750: [HAOI2012]Road【spfa+dfs】
- bzoj 3528 [Zjoi2014]星系调查【树链剖分+数学】