《R语言实战》笔记系列
本章学习大纲
1.数学和统计函数
2.字符处理函数
3.循环和条件执行
4.自编函数
5.数据整合与重塑
第一部分 数学和统计函数
R处理数据基石的函数中,它们可以分为数值(数学、统计、概率)函数和字符处理函数。
数学函数
统计函数
概率函数
概率函数属于统计类,通常用于生成特征已知模拟数据,以及在用户编写的统计函数中计算概率值。在R中,概率函数形式:[dpqr]distribution-abbreviation()其中第一个字母表示其所指分布的某一方面:d=密度函数(density),p=分布函数(distribution function),q=分位数函数(quantile function) r=生成随机数(随机偏差)。
1.设定随机数种子
在每次生成伪随机数的时候,函数都会使用一个不同的种子,因此也会产生不同的结果。你可以通过函数set.seed()显示指定这个种子,让结果可以重现。(reproducible)。函数run if()用来生成0到1区间上服从均匀分布的伪随机数。
2.生成多元正态分布
在模拟研究和蒙特卡洛方法中,需要获取来自给定均值向量和协方差阵的多元正态分布的数据。MASS包中的mvrnorm()函数可以完成改过程。一般形式:mvrnorm(n,mean,sigma)
第二部分 字符处理函数
数学和统计函数用于处理数据型数据,字符处理函数可以从文本型数据中抽取信息,或者为打印输出和生成报告重设文本的格式。
其他实用函数
第三部分 循环和条件执行
在正常情况下,R程序中语句是从上至下顺序执行的,如果需要重复执行某些语句的话,就需要运用控制流结构。控制流的构造包括:
语句(statement):是一条单独的R语句或一组复合语句(包含在花括号{}的一组R语句,用分号分隔)
条件(cond)是一条最终被解析为真(TRUE)或假(FALSE)的表达式;
表达式(expr)是一条数值或字符串的求值语句。
序列(seq)是一个数值或字符串序列。
重复和循环
循环结构重复地执行一个或一系列语句,直到某个调价不为真为止。循环结构包括for或while。
1.for结构
for循环重复地执行一个语句,直到某个变量的值不再包含在序列seq中为止。语法为:for (var in seq) statement
2.while结构
while循环重复地执行一个语句,直到条件不为真为止。语法为:while(cond) statement
条件执行
在条件执行结构中,一条或一组语句仅在满足一个指定条件时执行。条件执行结构包括if-else/ifelse和switch结构
1.if-else结构
控制结构if-eles在某个给定条件为真时执行语句,也可以同时在条件为假时执行另外的语句。语法为:if(cond) statement if(cond) statement1 else statements2.
2.ifelse结构
ifelse结构是if-else结构比较紧凑的向量化版本,语法是ifelse(cond,statement1.statement2)
若cond为TRUE,则执行第一个语句;若cond为FALSE,则执行第二个语句。在程序的行为是二元时,或者希望结构的输入或输出均为向量时,用该结构。
3.switch结构
switch结构是根据一个表达式的值选择语句执行,语法是switch(expr,...)
第四部分 自编函数
R最大优点之一就是用户可以自行添加函数。R的许多函数都是由已有函数构成的。一个函数的结果大致是:myfunction<-function(arg1,arg2,...){statements return(object)}
第五部分 数据整合与重塑
R中提供了许多用于整合(aggregate)和重塑(reshape)数据的强大方法。在整合数据中,往往将多组观测替换为根据这些观测计算的描述性统计量。在重塑数据中,则通过修改数据的结构(行和列)来决定数据的组织方式。
转置:是指将行和列反转。使用函数t()即可对一个矩阵或数据框进行转置。
整合数据
在R中使用一个或多个by变量和一个预定定义好的函数来折叠(collapse)数据是比较容易的,调用格式:aggregate(x,by,FUN)。其中x是待折叠的数据对象,by是一个变量名组成的列表,这些变量将被去掉以形成新的观测。而FUN则是用来计算描述性统计量的标量函数,它将被用来计算新观测中的值。
本章有数十种用于处理数据的数学、统计、概率函数。这章更像一个工具章,当遇到需要的处理数据函数时,记得复习本章内容。