R软件及其在金融定量分析中的应用-CH01.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

R软件及其在金融定量分析中的应用主编:许启发、蒋翠侠制作:侯奇华、王侠英2014年10月编写第1章R软件基础第一节工作环境第二节数据操作第三节常用命令第四节图形制作第五节编程计算第六节常用程序包第一节工作环境R的历史与发展1993年根据AT&T贝尔实验室的RickBecker,JohnChambers和AllanWilks所开发的S语言为规范编写而成1995年,R开始启动开源模式1997年,Chambers加入到R的创建队伍,R得以快速发展现在,R俨然成为数据处理最重要的工具之一,成为统计学科工具软件之首R的资源R发展至今,已经形成了层次丰富、形式多样、来源广泛的资源信息体系,主要包括:•R开源平台•R官网及社区•R出版物、R会议•R学习交流网站以•R搜索引擎•R博客第一节工作环境第一节工作环境RGUI(Rgraphicuser’sinterface)RGui可以在Linux、MacOSX、Windows三个平台上运行,用户可根据实际需要下载与自己使用的平台相对应的版本RGui可通过输入命令语句或程序代码以实现数据集的建立、数据的分析以及统计作图等操作RGui的界面比较简单,由操作界面、输出界面以及一系列的菜单和快捷键按钮组成第一节工作环境RGUI启动界面第一节工作环境RGUI运行界面第一节工作环境R操作界面可实现的功能通过数据处理和存储系统有效的进行数据处理分析与存储整合工作;通过数组运算工具实现对向量、数组和数据矩阵的操作运算;通过提供众多适用于数据分析的工具以形成一套完整连贯的统计分析体系,进而使得数据分析过程有序高效的进行;通过优秀的统计制图功能使得可以对数据直接进行分析和显示,支撑各种数据的可视化输出,并且可以适用于多种图形设备之中;第一节工作环境R操作界面可实现的功能通过使用条件语句、循环语句、用户自定义函数以及输入输出接口等简便而强大的编程语言使得程序设计得以简洁、完善而高效,通过利用这些简单的程序语言对数据处理过程加以描述,可以实现一个强大的数据分析功能;通过编写命令语句实现操作循环,R相对于下拉菜单式的统计软件有一个显著的优势,即是R可以将一系列连续的操作通过循环语句的形式进行简单地程序化管理,进而有效避免大量的重复性工作;第一节工作环境R操作界面可实现的功能通过将命令语句向量化简化循环和控制结构,使其隐含在表达式之中。向量化可以使得命令代码更为简洁明了、代码运行更为快速、统计工作效率大大提高;将R代码管理、工作空间载入和存储管理、历史记录管理、路径管理以及文件管理进行集成整合,从而便于用户执行数据操作与文档管理。第一节工作环境RStudioRStudio是个跨平台的且非常实用的R语言的IDE(IntegratedDevelopmentEnvironment),源于R软件产品的RStudio是指可使得应用程序编程语言多样化且简洁高效发展以及帮助提高R的使用效率的系列集成工具。通过RStudio可以方便快捷的编写及管理命令代码,有效编辑与执行测试语句,集成管理各种软件包及文档材料。RStudio将R的环境、先进的文本编辑器、R的帮助系统、版本控制以及更多的其他功能结合在一个单一的应用程序之中。第一节工作环境RStudio是一个自由开放的开源性软件,具有如下优势:可以在同一界面中对R及R图形进行交互性操作;可以在组织管理命令代码的同时维持多个项目之间的有序性;可以使研究过程及结果可再生与可复制;可以使软件包置于R安装的文件之中;可以创建并且分享代码及报告结果;可以实现与其他用户的合作。第一节工作环境RStudio运行界面第一节工作环境常见的RStudio的功能特征功能特征功能介绍R控制台集成RStudio对R控制台进行了调整使得可以直接在R控制台中的输入命令,也可以直接在脚本文件中执行代码语法高亮显示通过对关键字或者函数进行高亮显示以方便阅读代码补全在输入命令语句的中途按“Tab”键,RStudio会出现一个相应匹配函数菜单,当选定一个函数,则该函数所对应的参数和帮助说明均可以显示快捷键支持在执行一个常见任务时,可以通过快捷键或快捷键组合来快速完成,例如智能缩进等代码导航可以有效实现执行代码与源代码、函数使用与函数定义以及编辑文档不同元素之间的快速转换与快速移动括号配对支持一旦选定并输入一种括号或引号类型后,RStudio将会自动完成对应一半的类型匹配对象属性浏览通过对象浏览窗口中可以查看正在运行的R会话中每个对象的定义历史文件浏览在历史浏览窗口中可以查看所使用过的代码,需要时还可以反复执行它们帮助体系整合RStudio还通过浏览器搜索、查询本地帮助文件以及提供上下文帮助等方式提供全面的帮助体系第二节数据操作对象对象是R语言所创建和操作的实体,可以是变量、数组、字符串、函数以及由这些元素组成的其它结构。在当前工作路径下存储的所有对象组合称为工作空间(workspace),可以用ls()或者objects()命令来显示工作空间中所有的对象,也可以用rm()命令来清除工作空间中的对象,如:ls()在R中演示character(0)输出结果表示当前工作空间里没有数据对象。x-8#创建变量xls()[1]x运行结果表明当前工作空间只有一个名称为x的数据对象。rm(x)#清除变量xrm(list=ls())#清除当前空间中的所有对象第二节数据操作对象对象的命名在R的运行过程中,对象根据名称被创建和存储,名称可由所有的字母、数字以及它们的组合构成,但是命名规则需要注意三点:第一,名称不能以数字开头,如1a为非法变量名;第二,R对大小写敏感,即B和b是不同的代号并表示不同的变量;第三,避免使用R里面的关键字作为对象名称,比如t、c、head等。第二节数据操作变量赋值一个简单的对象创建,可以通过四种方式来实现。例如,如果将变量x赋值为3,则其表达方式有以下4种:•1.x-3;赋值操作符由小于()和减(-)两个字符组成,紧靠在一起,形象地表明指向的那个是接受表达式值的对象,该方式最为常用。•2.3-x;该方式与(1)的操作符方向相反,二者表示的含义一致,但不符合使用习惯,很少用。•3.x=3;赋值操作符“=”号通常用于对象内部元素或函数参数选项赋值,一般不主张采取该种方式对变量赋值。•4.assign(x,3);使用assign()函数进行赋值,与上面的赋值方式等价。如果一个表达式被视为一个完整命令,其值只需在终端显示无需保存,则我们可以使用如下命令:x*3第二节数据操作基本类型数值型数值型是对象中一个最简单的类型,它包括整型、单精度实型和双精度实型,默认为双精度实型。x-12length(x)[1]1class(x)[1]numeric结果说明对象x是长度为1的数值型变量。第二节数据操作基本类型逻辑型逻辑型数据常用于逻辑或条件的判断,取值为TRUE(T)或FALSE(F)两种。y-TRUEclass(y)[1]logicallength(y)[1]1第二节数据操作基本类型字符型字符型变量的界定方式有双引号“”和单引号‘’两种,在双引号引用情况下,若要输出双引号,则在反斜杠“\”后面加上引号即可;而在单引号引用情况下,则不需要添加反斜杠,直接添加双引号,其演示代码如下:z-Display\a\stringw-'Displaybstring'cat(z)Displayastringcat(w)Displaybstringclass(z);class(w)[1]character[1]character第二节数据操作基本类型复数型R中支持复数运算,形如a+bi形式的数据称为复数。m-2+3iclass(m)[1]complexlength(m)[1]1在这些基本类型基础上,R语言还能够构造出其它类型的对象,主要有以下七种:向量、数组、矩阵、数据框、列表、因子和表达式,它们大大地提高了R中数据操作的性能。第二节数据操作向量向量是由同一基本类型元素构成的序列,相当于一维数组。若为数值型序列,则构成的是数值向量,一般使用函数c()实现向量的赋值,可以有任意多个参数,而它输出的值则是一个把这些参数首尾相连形成的一个向量,并且可以通过下标获取其相应参数。例如:创建一个含有4个数值组成的向量x,这四个值分别是1、3、5、7,命令如下:x-c(1,3,5,7)x[1]1357x[2][1]3第二节数据操作向量R可以生成有规律的序列,最简单的使用“:”符号,形如a:b,它表示从a开始,逐项加1或减1,直到b为止,且“:”在符号运算中级别最高。如:y-1:10y[1]123456789101:10-1[1]01234567891:(10-1)[1]123456789第二节数据操作向量若要生成任意等间隔的数据,则可以使用函数seq()来实现,形如seq(from,to,by),其中from表示序列的起始值,to表示序列的终止值,by为步长,如:seq(1,10,3)[1]14710输出结果显示,这是一个以3为间隔的序列。seq(1,10)[1]12345678910若我们关注的是数列长度,则可以通过语法:seq(下界,by,length)来实现,by参数省略时,默认步长为1。如:seq(1,by=3,length=4)[1]14710第二节数据操作向量在产生序列时,R提供的rep()函数可以重复某一个元素或对象,其语法形式:rep(x,times,…)其中x是重复的元素或对象,times表示重复的次数。如:rep(1,3)[1]111上面是对单个元素1重复3次的结果,也可以对向量c(2,4)重复3次,如:rep(c(2,4),3)[1]242424若要对c(2,4)中的每个元素进行重复3次,则可以表示如下:rep(c(2,4),each=3)[1]222444此外,rep()函数还可以嵌套使用,如:rep(2:4,rep(2,3))[1]223344第二节数据操作数据与矩阵数组R语言中可以使用array()函数来生成数组,其语法形式:array(data=NA,dim=length(data),dimnames=NULL)其中data表示向量数据,可以为空;dim是数组各维的长度;dimnames数组维度的名称,默认为空。如:X-array(1:30,dim=c(5,6))#创建一个5×6的二维数组X[,1][,2][,3][,4][,5][,6][1,]1611162126[2,]2712172227[3,]3813182328[4,]4914192429[5,]51015202530这里的二维数组实质上就是一个矩阵,默认数组的元素按列存放。第二节数据操作数据与矩阵数组Z-array(1:32,dim=c(4,4,2))#创建一个4×4×2的3维数组Z,,1,,2[,1][,2][,3][,4][,1][,2][,3][,4][1,]15913[1,]17212529[2,]261014[2,]18222630[3,]371115[3,]19232731[4,]481216[4,]20242832数组Z是一个三维数组,其中第一维有4个水平,第二维有4个水平,第三维有2个水平。第二节数据操作数据与矩阵数组如果要访问数组Z的某个元素或某一维数据,即只要写出数组名和方括号内用逗号隔开的下标,形如Z[i,j,k],其中i,j,k既可以是某一个数值也可以是一个数值向量,如:Z[2,3,2]#取出第一维下标为2,第二维下标为3,第三维下标为2的元素[1]26此外,每一个下标位置可以写成一个下标向量,表示这一维取出所有指定下标的元素,如:Z[1:3,2,1]#取出第一维下标为1至3,第二维下标为2,第三维下标为1的所有元素[1]567第二节数据操作数据与矩阵矩阵矩阵实际上就是一个二维数组。矩阵中的元素必须为同一类

1 / 81
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功