Lecture1:R基础(一) 张伟平 Thursday 27th August,2009 Previous Next First Last Back Forward
Lecture 1: R Ä:() ܲ Thursday 27th August, 2009 Previous Next First Last Back Forward a
Contents 1 Introduction y 1.1 R website..................。...。 1.2 Differences between R and S............. 2 1.3 Start with R.....·..·.。.。·. 5 2 Data with R 12 2.1 Objects······ 12 2.2 Reading data in a file 18 2.3 Saving data..........·..·..· 22 2.4 generating data................. 23 2.5 Manipulating objects ........... 28 2.5.1 Creating objects·..·.· 28 2.5.2 Operators········· 36 2.5.3 Accessing the values of an object:the indexing system 40 2.5.4 Accessing the values of an object with names 43 2.5.5 Arithmetics and simple functions··········· 45 2.5.6 Matrix Computation.,···.············ 50 Previous Next First Last Back Forward 1
Contents 1 Introduction 1 1.1 R website . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Differences between R and S . . . . . . . . . . . . . . . . . . 2 1.3 Start with R . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Data with R 12 2.1 Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 Reading data in a file . . . . . . . . . . . . . . . . . . . . . 18 2.3 Saving data . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4 generating data . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.5 Manipulating objects . . . . . . . . . . . . . . . . . . . . . . 28 2.5.1 Creating objects . . . . . . . . . . . . . . . . . . . . 28 2.5.2 Operators . . . . . . . . . . . . . . . . . . . . . . . . 36 2.5.3 Accessing the values of an object: the indexing system 40 2.5.4 Accessing the values of an object with names . . . . 43 2.5.5 Arithmetics and simple functions . . . . . . . . . . . 45 2.5.6 Matrix Computation . . . . . . . . . . . . . . . . . . 50 Previous Next First Last Back Forward 1
Chapter 1 Introduction R是一个免费开源的用于统计计算和作图的语言和软件环境.支持的操作系 统包括各种UNIX平台,Vindows和MacOS等.R提供了广泛的统计工具(线 性和非线性建模,经典的统计检验,时间序列,生存分析,分类,聚类..等等) 和灵活高质量的图形工具.R的功能可以通过添加package来扩充. 1.1 R website R的官方网站为R Project Website.该网站包含R在各种操作系统下的安 装文件,R的帮助文档包括一些免费的书籍等等.目前R软件的最新版本 为2.9.1.R软件在Windows下的安装是非常简单的.在其它的操作系统下的 安装也很容易,请参考RFAQ:How can R be installed. 着重于R在特殊的应用领域以及统计模型等方面的项目包括 Bioconductor:Bioinformatics with R Previous Next First Last Back Forward
Chapter 1 Introduction R ´¤m ^uÚOOÚãóÚ^¸. |±öX Ú)«UNIX², Windows ÚMacOS . R Jø 2ÚOóä( 5Ú5ï, ²;ÚOu, mS, )©Û, ©a, àa... ) Ú(¹pþã/óä. R õU±ÏLV\ package 5*¿. 1.1 R website R (ÕR Project Website. TÕ¹ R 3«öXÚeS C©, R Ï©) ¤Ö7. 8c R ^# 2.9.1. R ^3Windows eSC´~{ü. 3Ù§öXÚe SCéN´, ëR FAQ: How can R be installed. XuR 3AÏA^+±9ÚO.¡8) • Bioconductor: Bioinformatics with R Previous Next First Last Back Forward 1
1.INTRODUCTION Rgeo:Spatial Statistics with R .gR:gRaphical models in R Robust:Robust Statistics with R Rmetrics:Financial Market Analysis with R 1.2 Differences between R and S l.R由Ross Thaka和Robert Gentleman共同创立,可以视为是由AT&T 贝尔实验室所创的S语言的另外一种实施.S语言现在主要内含 在Insightful公司的S-PLUS软件中. 2.R和S在设计理念上存在有若许多不同.我们可以视S为一种目前有着 三种引繁或者内核的语言:“old S engine”(S version;S-Plus3.x and4.),“new S engine”(S version4;S-Plus5.r and above).以 及R.因此R和S的差异主要是“engines”. 以下S指S引擎,R指R引繁 Previous Next First Last Back Forward
• Rgeo: Spatial Statistics with R • gR: gRaphical models in R • Robust: Robust Statistics with R • Rmetrics: Financial Market Analysis with R 1.2 Differences between R and S 1. R dRoss Ihaka ÚRobert Gentleman ÓMá, ±À´dAT&T ¢¿¤MS ó, «¢. S óy3ÌS¹ 3Insightful úiS-PLUS ^¥. 2. R Ú S 3Ongþ3kXNõØÓ. ·±ÀS «8ckX n«Ú½öSØó: /old S engine0(S version 3; S-Plus 3.x and 4.x), /new S engine0(S version 4; S-Plus 5.x and above), ± 9R. ÏdR ÚS ÉÌ´/engines0. ±eS S Ú, R R Ú. 1. INTRODUCTION Previous Next First Last Back Forward 2
1.INTRODUCTION 1.词法作用域(lexical scope):考虑如下函数 TCode cube cube(2) Error in sq():Object "n"not found Dumped S>ncube(2) [1]18 Previous Next First Last Back Forward 3
1. c{^(lexical scope): ÄXe¼ê ↑Code cube cube(2) Error in sq(): Object "n" not found Dumped S> n cube(2) [1] 18 1. INTRODUCTION Previous Next First Last Back Forward 3
1.INTRODUCTION 1Example 在R中,cube()被调用时其产生的“environment”也被调用: TExample R>cube(2) [1]8 ⊥Example 2.模型 ·在S中,表示响应变量y对x3的回归用1m(yx3),而在R中,应该 用1m(yI(x3)) ·glm族对象在R和S中尽管功能相同,但是其成分名称不同. ·选项na.action在R中默认为“na.omit”,而S中没有 ·R中y~x+0和yx-1等价,没有参数的模型可以通过y0指定. 3.详细的或者其他的R与S之间的差别请参看:What are the differences between R and S? Previous Next First Last Back Forward 4
↓Example 3R ¥, cube() N^Ù)/environment0N^: ↑Example R> cube(2) [1] 8 ↓Example 2. . • 3S ¥, L«ACþy éx 3 £8^lm(y~ x^3), 3R ¥, AT ^lm(y ~ I(x^3)). • glm xé3R ÚS ¥¦+õUÓ, ´Ù¤©¶¡ØÓ. • Àna.action 3R ¥%@/na.omit0, S ¥vk. • R ¥y ~ x+0 Úy~x-1 d, vkëê.±ÏLy~0 ½. 3. [½öÙ¦R S mOëw: What are the differences between R and S? 1. INTRODUCTION Previous Next First Last Back Forward 4
1.INTRODUCTION 1.3 Start with R R是一种解释性程序语言,因此不必像C或者Fortran之类的编译语言首 先要构成一个完整的程序形式.当R运行时,所有变量,数据,函数及结果 都以对象(objects)的形式存在计算机的活动内存中,并冠有相应的名字代号. 我们可以通过用一些运算符(如算术,逻辑,比较等)和一些函数(其本身也是 对象)来对这些对象进行操作 这是R(S)与其他主要的统计系统之间的重要差异.在R中,一个统计分析一 般分几步完成,中间的结果都是存储在对象里.因此在回归或者判别分析时, SAS和SPSS会给出非常多的输出结果,但R将给出最少的输出,而将结果存储 在一个拟合对象中,可以使用R函数进行后续的分析. R语言中最简单的命令莫过于通过输入一个对象的名字来显示其内容了 例如,一个名为n的对象,其内容是数值10: TExample >n [1]10 ⊥xample Previous Next First Last Back Forward 5
1.3 Start with R R ´«)º5§Só, ÏdØ7 C ½ö Fortran a?ÈóÄ k¤§S/ª. R $1, ¤kCþ, êâ, ¼ê9(J ѱé (objects) /ª3OŹÄS¥, ¿)kA¶iÒ. ·±ÏL^ $Î(Xâ§Ü6§') Ú ¼ê(Ù´ é) 5éù é?1ö. ù´R(S)Ù¦ÌÚOXÚmÉ. 3R¥,ÚO©Û ©AÚ¤, ¥m(JÑ´;3ép. Ïd3£8½öO©Û, SASÚSPSS¬Ñ~õÑÑ(J, R òÑÑÑ, ò(J; 3[Üé¥, ±¦^R¼ê?1Y©Û. R ó¥{ü·-#LuÏLÑ\é¶i5w«ÙSN . ~X, ¶ n é, ÙSN´ê10: ↑Example > n [1] 10 ↓Example 1. INTRODUCTION Previous Next First Last Back Forward 5
1.INTRODUCTION 方括号中的数字1表示从n的第一个元素开始显示.其实该命令的功能在这里 于函数print相似,输出结果与print(o)相同(但有些情况下,例如内嵌在一 个函数或循环中时,就必须得用printi函数), >nn [1]1234567891011121314151617181920 [21]21222324252627282930 1Example 对象的名字必须是以一个字母开头(A-Z或-z),中间可以包含字母,数 字(09),点(.)及下划线().因为R对对象的名字区分大小写,所以x和X就 可以代表两个完全不同的对象 R有一个内建的帮助工具以获得指定名称函数的更多信息.例如,函数solve, 使用 Previous Next First Last Back Forward 6
)Ò¥êi1L«l n 1m©w«. Ù¢T·-õU3ùp u¼ê print q, ÑÑ(J print(n) Ó(k ¹e, ~XSi3 ¼ê½Ì¥,Ò7L^print¼ê). ↑Example > n n [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 21 22 23 24 25 26 27 28 29 30 ↓Example é¶i7L´±i1mÞ( A-Z ½ a-z ), ¥m±¹i1, ê i(0-9), :( . )9ey( ). Ï R éé¶i«©, ¤± x Ú X Ò ±LüØÓé. RkSïÏóä±¼½¶¡¼êõ&E. ~X, ¼êsolve, ¦^ ↑Code 1. INTRODUCTION Previous Next First Last Back Forward 6
1.INTRODUCTION >help(solve) 1Code 或者 >?solve TCode Code 对一些特殊的字符或者有若语法意义的词汇(如if,for,function等),则必须将 其放在双引号或者单引号中: help("[[");help("if") TCode 1Code 默认状态下,函数help只会在被载入内存中的包中搜索。选项try.all.package 在缺省值是FALSE,但如果把它设为TRUE,则可在所有包中进行搜索: TExample help("bs") No documentation for 'bs'in specified packages and libraries: you could try 'help.search("bs")' Previous Next First Last Back Forward 7
> help(solve) ↓Code ½ö ↑Code > ?solve ↓Code é AÏiνökX{¿Âc®(Xif,for,function), K7Lò Ù3VÚÒ½öüÚÒ¥: ↑Code > help("[[") ; help("if") ↓Code %@Ge§¼êhelp¬31\S¥¥|¢"Àtry.all.package 3"´FALSE, XJr§TRUE§K3¤k¥?1|¢µ ↑Example > help("bs") No documentation for ’bs’ in specified packages and libraries: you could try ’help.search("bs")’ 1. INTRODUCTION Previous Next First Last Back Forward 7
1.INTRODUCTION help("bs",try.all.packages TRUE) Help for topic 'bs'is not in any loaded package but can be found in the following packages: Package Library splines /usr/lib/R/library 1Example 也可以启动R的HTML格式帮助文档 help.start() TCode Code help.search()(等价的?)命令给出更多查找帮助的方式.另外,也可以使 用example()命令查看某指定的主题.例如 >help.search("tree")等价地,??mean TCode 1Code 会列出所有在帮助页面含有"tree”的函数.注意如果有一些包是最近才 安装的,应该首先使用函数help.search中的rebuild选项来刷新数据库(eg, Previous Next First Last Back Forward 8
> help("bs", try.all.packages = TRUE) Help for topic ’bs’ is not in any loaded package but can be found in the following packages: Package Library splines /usr/lib/R/library ↓Example ±éÄRHTMLªÏ© ↑Code > help.start() ↓Code help.search()(d??)·-ÑõéϪ., , ±¦ ^example()·-w,½ÌK. ~X ↑Code > help.search("tree") d/, ??mean ↓Code ¬Ñ¤k3Ï¡¹k”tree”¼ê. 5¿XJk ´Câ SC, ATÄk¦^¼êhelp.search¥rebuildÀ5M#êâ¥(e.g., 1. INTRODUCTION Previous Next First Last Back Forward 8