R常见问题解答


R 常见问题解答 R frequently asked questions http://www.r-project.org 153 分钟学会 R This document is generated from LATEXsources compiled with xeLATEX in a Windows platform. The used packages are amsmath, listings, makeidx and so on. 序: 这篇文档内容的来源多样,既有来自于 R 官方文档(包括 R_intro,R_data,R_admin), 也有来自于互联网的 contributed documents;还有若干来自于 Capital Of Statistics 论坛的讨论 问题。 本文档的目的是为具有一定统计(数学)背景的 R 软件初学者提供一个快速认识 R 软件的 平台,如果你无此背景,可能会对其中的若干表达存在疑问。这篇文档重点不在统计方法上,因 此所列问题不可能详尽到统计学的每个知识点。 R 是一个很庞大的体系,在 CRAN 的 Task Views 上可以清楚地看到贝叶斯推断、聚类分 析、机器学习、空间统计、稳健统计等方法的介绍。而这些方法又通过相应的 R Packages 扩展, 可以说学习 R 是一件没有尽头的事情。 如果你的英文阅读没问题,那么精读一本关于 R 的原版书籍也是一个不错的选择,但这个 开头常常让人很头痛。希望这份 44 页的文档,对你认识、学习 R 是个不错的帮助。 刘思喆 1 2 February 4, 2013 致谢: abel,cran,rtist,Xie Yihui,zhangv … 1http://www.bjt.name/todo 2sunbjtgmail.com A 前言 1. R 是做什么的? R 是一个有着统计分析功能及强大作图功能的软件系统,是由新西兰奥克兰大学统计学系 的 Ross Ihaka 和 Robert Gentleman 共同创立。由于 R 受 Becker, Chambers & Wilks 创立的 S 和 Sussman 的 Scheme 两种语言的影响,所以 R 看起来和 S 语言非常相似。 2. 在里可以下载 R 的安装程序? 在 R 的官方网址上,选择网站镜像 http://cran.r-project.org/mirrors.html,比如 UC Berkeley下载软件副本。R 拥有在 Linux,MacOS X,Windows 平台下的各个版本,如果 是 Windows 用户,进入镜像网站,选择 Windows (95 and later) ,进入 base,下载 R-x.x.x- win32.exe。 3. 为什么 R 做 R? 部分是因为两位 R 的作者 (Robert Gentleman 和 Ross Ihaka) 的姓名,部分是受到了贝尔 实验室 S 语言的影响(称其为 S 语言的方言或 GNU S)。 4. CRAN 是什么意思? CRAN 是 Comprehensive RArchive Network 的简写,顾名思义:是拥有同一资料,包括 R 的发布版本,包,文档和源代码的网络集合。 5. 我是新手,我如何开始学习 R? 由于 R 的创立者和维护人员大部分都是统计学家,所以如果你有相关统计背景,将是一个 极好的帮助。如果没有相关背景, R 的官方网站拥有大量的英文学习资源可供选择。当然还可以 参考 http://cran.r-project.org/other-docs.html 上的中文翻译文档。 统计之都 BBS 是一个非常不错的学习 R 的中文网站。在论坛上,你可以搜索到大量学习资 料或直接提出问题同大家探讨。 6. 初学者阅读 R 自行安装的 R-intro 就可以了么? R-intro 确实是官方文档中最基础的,但它不是从 R 软件应用角度讲的,故并不适合于 R 初学者。可以参考 R-intro 中数据类型、结构部分,作为基础学习。 7. 能列一些 R 的经典书目么? 正如这份文档序言中所述,《 153 分钟学会 R》更注重于快速认识 R 或者为拥有一定统计背 景的初学者提供快速掌握 R 语言提供一个有效途径。更多技术细节或统计知识仍需通过阅读相 应文献来掌握。 中文资料的话,推荐华东师范大学汤银才老师的《 R 语言与统计分析》和北京工业大学薛毅 老师《统计建模与 R 软件》。 2 当然还有一些原版资料是必须要读的,例如: Modern Applied Statistics with S(Venables and Ripley) The New S Language: A Programming Environment for Data Analysis and Graphics —(Richard A. Becker,John M. Chambers,Allan R.Wilks) A Handbook of Statistical Analysis Using R(Brian S. Everitt,Torsten Hothorn) Data Analysis and Graphics using R(Maindonald and Braun) Introductory Statistics with R(Dalgaard) R in a nutshell 8. R 需要编程么? 不!大多数时候不需要,因为 R 有很多函数和包,而且每天都在增加,你用的一般方法和 函数都可以在 R 自带包中找到。 9. 能否简单一个 R 的例子? 生成 100 个高斯(正态)分布随机数,并对这 100 个数进行特征描述。 1 x <− rnorm (100 ,mean = 5 , sd = 0 . 1 ) mean( x ) 3 sd ( x ) summary( x ) 当然你还可以使用 demo()函数,比如 R 漂亮的图形演示: demo( g r a p h i c s ) 10. R 需要注册费用么? 不需要!R 是一款在 GNU General Public License (GPL) 下发布的开源软件,只是很少一 部分包不能用于商业用途。不知道为什么有些费时、费力且价格不菲的商业统计软件,居然还在 生存? 11. 为什么 R 不能使用超过 50% 的 CPU? 这是 Windows 下任务管理器的误导,它将多个 CPU 看作是单个 CPU,同时计算使用比 例。而 R 是单线程计算软件,它不能同时使用 2 个以上的 CPU。当你的计算机应用的是双核技 术,你会发现 CPU 应用会定格在 50% 上。 12. 如何在发行出版里引用 R 如果你是 LATEX 用户,可以在 R 中使用命令 citation() 得到可供 BibTEX 使用的内容;或 者是某一个包的引用 1 c i t a t i o n ( package = ’package’) 3 B 基础知识 13. 如何获得帮助? R 的帮助系统非常强大,可以直接使用 “?topic” 或 help(topic) 来获取 topic 的帮助信息; 也可使用 help.search(”topic”) 来搜索帮助系统。 如果你只知道函数的部分名称,那么可以使用 apropos(”tab”) 来搜索得到载入内存所有包 含 tab 字段的函数。 如 果 还 没 有 得 到 需 要 的 资 料,还 有 R Site Search:http://finzi.psych.upenn.edu/ search.html,等价于在 R 平台上使用 RSiteSearch() 函数。 14. R 可使用的最大内存是多少? R 经常因为过分消耗内存而受到指责,这主要是因为 R 的设计理念造成。不过还好,我们 使用的数据量通常不是很大,通常都可以处理,而且 R 也逐步地在做优化。如果在特定条件下 需要更大的内存来做运算,提供两种途径来设定(增大)内存: • 启动 R 进程前,增加 R 启动参数。在 CMD 环境下,运行增加参数的 Rterm: 1 r −−max−mem−s i z e =1Gb 或通过添加 RHOME/bin 至系统环境中,直接在 “运行” 中运行3 1 r g u i −−max−mem−s i z e =1Gb • 启动 R 进程后,通过 memory.limit 函数增大 R 进程的内存限制。 32 位 R 的工作内存大小的设定值为 32Mb 到 3Gb 间的任意数值,而 64 位则没有任何限制。 但需要提示的是:32 位 Windows 平台可用最大有效内存为 2Gb,也就是说,实际上在 32 位 Windows 上 R 的可用的工作内存区间为 32Mb 至 2Gb。 15. 为什么 help.search() 搜索不能使用? 基于浏览器的搜索引擎要求正确安装完整版 Java,且 Java 和 Javascript 须嵌入浏览器。 16. R 支持中文么? 支持,但不好!在 R 中,大部分包的作者都是以英文为母语的,不会对中文字符考虑太多, 故建议使用全英文环境。 但在绘图时,可能会遇到中文支持问题,这时候需要设置 par 中的 family 参数,比如在 2.14.0 版本以后 R 可以直接使用 cairo 模式,这时就需要使用 1 png(’foo.png’, type = ”cairo”, , family=”SimSun” ) p l o t (1,type = ’n’) 3 t e x t ( 1 , 1 , ’这是 cairo 模式 ’) 3同样支持 Rterm 4 dev . o f f () 同时支持黑体(SimHei)、楷体(KaiTi_GB2312)、幼圆(YouYuan)、隶书(LiSu),或者更 一般的图形设备(非 cairo),设置 family = ’GB1’,即可。 17. R 支持自动补全(Tab completion)么? 支持!在 2.5.0 版本中,R 引入了命令自动补全功能,使用 Tab 键能自动补全 R 命令;或 使用第二次 Tab 后,返回所有可能的补全命令列表。 18. 如何清除变量? 清除单个变量使用 rm() 函数,清除内存中所有的变量: rm( l i s t = l s ( a l l = TRUE) ) 19. 如何更改小数点后显示数字位数? options(digits = ) ,digits 后面的参数为 1 至 22 的数字,默认为 7。options 函数还可以改 变很多全局选项,如更改提示符 (prompt) ,是否显示错误信息 (show.error.messages) 等。 20. 如何调用系统内的程序? 使用 system() 函数或用 shell.exec() 调用相应程序来打开文件: 1 # go to the cran system ( paste ( ’ ”C: /Program Files / Internet Explorer / iexplore.exe”’, 3 ’ cran . r−project.org’), wait = FALSE) # invoke the notepad 5 system (”notepad”) shell .exec(”C: /WINDOWS/ c l o c k ” ) 21. Windows 下升级 R,但不想重装 packages ? 鉴于 R 的更新速度(大概每 3 个月会有一次升级),频繁的更新主程序,可能是我们在 Windows 环境下最常遇到的问题,再加之本地 Contributed Packages 数量很大,这个问题会更 加突出。 一般来说,R 本地的目录结构相对固定,可以通过在其他目录下安装 R,再将旧版本保留 的 library 目录下的文件拷贝至新版本 library 目录下或卸载 R,把 R 装到旧的目录下,最后使 用如下命令更新: update . packages (checkBuilt = TRUE, ask = FALSE) 2 # or install.packages(.packages(all = TRUE)) 22. 如何卸载已安装的 packages? 5 参考 remove . packages ( c (”pkg1”,”pkg2”), 2 l i b = f i l e . path (”path”, ”to”, ”library”)) 23. R 的工作目录在里? 一般的,Windows XP 下的 R 工作目录在 C:\Documents and Settings\username 或者使用 getwd() 命令获得 R 的工作目录 (Working Directory),使用 setwd() 设置工作目录位 置。 24. 我样保存自己的工作? 使用 save.image() 函数。它将在 R 的起始目录保存记区(working space)至.RData 文 件;或者使用 save(..., file = ) 保存需要保存的 R 对象。 25. R 如何安装包? 通过选择下载镜像,R 可以自动安装未安装在本地的包,当然也可以从镜像网站下载可用 的包,直接本地安装 4。 26. library() 的逆向操作是什么? 当加载包后,需要分离 R 同包时,可以使用 1 detach (”package:pkg”) 27. Library 和 Package 有什么区别? 这两个概念的确容易混淆,因为 R 中加载 Package 的命令是 Library!Library 是一个目 录,可能包含一个或多个 Package;而 Package 是包含函数、数据、手册的一个集合,属于某个 Library,即(Windows 下)的 “*.zip” 文件。 28. 如何得到加载 Package 的列表? search() 函数返回当前加载的包的情况,使用 1 . packages ( a l l . available = TRUE) 命令获得本地安装的包列表。 当 R 启动后,R 在内存中会自动加载若干 Package: 4R 有 Unix、Mac、Windows 三个版本,注意包也分别对应三个版本 6 R 初始状态载入包列表 包 描述 stats 常用统计函数 graphics 基础绘图函数 grDevices 基础或 grid 图形设备 utils R 工具函数 datasets 基础数据集 methods 用于 R 对象和编程工具的方法和类的定义 base 基础函数 29. 如何使用 R 内置的数据集? R 在 datasets 包中共提供了 102 个可以使用的数据集,这些数据集都可以通过 data() 函数 加载入内存。 1 dim( data () $ r e s u l t s ) data () $ results[,4] 30. R 的数据类型有几种? R(S 语言)没有标量,它通过使用各种类型的向量来存储数据。常用的数据类型( class) 有: 常用数据类型 类型 说明 1 字符(charactor) 它们常常被引号包围 2 数字(numeric) 实数向量 3 整数(integer) 整数向量 4 逻辑(logical) 逻辑向量(TRUE=T、FALSE=F) 5 复数(complex) 复数a 6 列表(list)S 对象的向量 7 因子(factor) 常用于标记样本 a参考第 18 页 “复数计算” 在 R(S)语言中,有一点要牢记: Everything in S is an object; Every object is S has a class. 31. data frame 是什么? data frame(数据框)可以理解是一个松散的数据集。它可以是由不同类型的列(数字、因 子、字符等)组成的类矩阵(matrix-like)。 7 32. 如何得到函数的代码? 通常情况你只需要在 R 平台下写出你需要查看的函数名,回车即可。比如: d i s t 但有时候这个函数可能是一个泛型函数(Generic Function),上面的方法就需要稍稍改进一下: 先使用 methods() 函数来查看这个类函数的列表,找到具体需要的函数 5 ,写出来,回车 —问 题解决。 1 summary # It is a generic funciton methods (summary) # list of the S3 methods 3 summary . lm # maybe you want to know the linear models’s summary 如果要究根问底,可以去下载源代码压缩包(*.tar.gz,比如 R-2.5.1.tar.gz) 33. 我想查看一个矩阵的前(后)几行,么办? 可以使用 head() 或 tail() 函数。 1 head (CO2) 这两个函数是类函数,它们可以应用于向量、矩阵、数据框、表格或函数。如果只想随机看看对 象中的一些内容,还可以使用 car 包中的 some 函数。 34. 在 R 中公式的符号都是什么意义? 拿常见的 lm,glm 模型来说,y ˜model 是一种特定的格式,表示以 y 为响应变量,模型为 model。其中 model 中的变量由 + 来连接,或者由: 来表示变量间的 “交互作用”。 除了 + 和 :,我们使用 ∗ 来表示 ′a + b + a : b′。(a + b + c)∧2 表示 (a + b + c) ∗ (a + b + c), 即主因素 a、b、c 和各个因素的交互作用。− 表示去掉之意。(a + b + c)∧2 − a : b 表示 ′a + b + c + b : c + a : c′。 在公式表达中除了变量和因子名外,运算符号也是可以存在的。如 ′ log(y) a + log(x)′ 是合 法的。 符号. 在 update 函数中有特殊的意义,它表示 “已经存在” 之意。 1 fm <− aov ( Speed ~ Run + Expt ) fm0 <− update (fm , . ~ . − Run) 在第 H 节中的网格(lattice)绘图,我们还会看到 | 符号,它可以用来标示 “条件变量”。 35. R 里面可以使用学计数法么? 可以。 5标注星号的函数可以使用 getAnywhere() 函数获得代码 8 1e10 == 10000000000 2 1 . 2 e−4 == 0.00012 C 输入输出 36. R 可以读取其他统计软件录入的数据么? 可以,使用 foreign 包,它可以读取 Minitab, S, SAS, SPSS, Stata, Systat, dBase 保存的数 据。或者使用 Hmisc 包中 sas.get, spss.get 函数来获取 SAS 和 SPSS 软件格式数据。 但随着这些商业软件的版本更新,依旧会出现一些文件不能通过 foreign 包读取的情况,建 议在交换数据时尽量使用.csv 这种通用格式。 37. R 可以读 Excel 的数据么? 可以,但不推荐直接读取 Excel 文件,或许只有微软知道 Excel 里面有什么东西。通常有 三种方法读取 Excel: 1. 将 Excel 另存为 csv(Comma Separated Values) 文件,使用 read.csv() 函数读取(推荐); 2. 加载 RODBC 包,使用 odbcConnectExcel() 函数读取 xls 文件, l i b r a r y (RODBC) 2 z <− odbcConnectExcel(”rexceltest . xls”) dd <− sqlFetch(z, ”Sheet1”) 4 c l o s e ( z ) 详细请参考 R Data Import/Export; 3. xlsReadWrite 包中的 read.xls函数。 38. 可以将 R 中显示的结果输出到文件么? 可以。使用 sink()函数。 data (CO2) 2 sink (”CO2. txt”) CO2 4 sink () # go to your work directory, you will get CO2.txt 39. 如何调用 R 的输出信息? R 提供了 capture.output() 函数,这个函数可以将 R 的输出信息转化为字符或文件。 glmout <− capture.output( example ( glm )) 2 glmout[1:5] 9 当然,如果你想得到漂亮的输出,Go to LATEX! 40. R 可以从内存直接读写数据么? 可以。拷贝需要读取的内容,使用 data <− read . t a b l e (”clipboard”) 2 write . t a b l e (”clipboard”) 这个技巧对于临时性的分析工作非常有益。 41. 样将因子 (factor) 转换为数字 这个问题时有发生,假设 f 是一个这样的因子对象,我们可以使用 as . numeric ( as . c h a r a c t e r ( f ) ) 2 # or as . numeric ( l e v e l s ( f ) ) [ as . i n t e g e r ( f ) ] 这个点一定要小心,因为对于顺序型 factor 数据,如果强制转化为数值型,会返回的是 factor 的顺序信息,而非你看到的 character 信息。 42. R 可以使用子表格输入数据么? 可以使用 edit()和 fix()函数。 1 data <− data . frame () e d i t ( x ) ; f i x ( x ) 但,这非常 naive! 43. 为什么当我使用 source() 时,不能显示输出结果? 对需要显示输出的对象使用 print() ,或者使用 source(file, echo = TRUE)。如果 R 代码里 面包含 sink() 之类的函数,必须使用 source(file, echo = TRUE) 才能得到正确的输出结果,否 则 sink 的对象将为空。 44. R 可以输出可供 TEX 使用的文本么? 可以,参考 Hmisc 包中的 latex() 函数和 xtable 包中的 xtable()函数。 a <− matrix (1:6, nr=1) # require(xtable) 2 colnames ( a ) <− paste (”col”, 1:6) xta ble ( a ) xtable() 函数可以用于产生 HTML 格式的原码,这样 R 生成的表格就可以非常方便、漂亮地插 入到 word、powerpoint 这类文字处理软件。 输出 LATEX 格式的表格还可以 quantreg 包中的 latex.table()函数。 10 45. 找不到文件,但我知道它在! 在 R 里面使用必须使用双反斜杠或单斜杠表示文件路径,比如: 1 d : \ \R−2.4.1\\ l i b r a r y \\xgobi\\scripts\\xgobi.bat d : /R−2.4.1 / l i b r a r y / xgobi / s c r i p t s / xgobi . bat 当然还可以使用 file.choose() 函数打开一个 Windows 标准文件选择对话框,手动选择文件。当 然还有可以使用 choose.dir() 打开 Windows 标准目录选择对话框 ,。 46. R 可以直接从数据库读取数据么? 可以,并且还可以通过 SQL 语句对数据库进行操作。R 对于基于 SQL 语言的关系型数据 库有良好的支持,这些数据库既有商业数据库 Oracle、Microsoft SQL Server、IBM DB2 等,也 包含在GNU General Public License (GPL) 下发布的 MySQL 等开源数据库。 RMySQL 6 包中提供了到 MySQL 数据库的接口;RODBC 包提供了更为广泛数据库接口 的解决方案 — 支持所有标准 ODBC 接口的数据库。通过这种方式,相同的 R 代码可以方便地 应用于不同类型的数据库。 l i b r a r y (RODBC) 2 ch <− odbcConnect(”stocksDSN” ,uid = ”myuser” ,pwd = ”mypassword”) s t o c k s <− sqlQuery(ch,”select * from quotes”) 4 odbcClose(ch) 经测试,Windows 平台上的 Microsoft SQL Server、Access、Oracle、MySQL、PostgreSQL, 和 Linux 平台上的 MySQL、Oracle、PostgreSQL、SQLite 都有良好的应用案例(详细参考 R- data)。 D 数据处理 47. 如何删掉缺失值? 在 R 中使用 NA(not available)表示缺失值,要注意 R(S)语言中 NA 同样是一个逻辑 值,7 x <− NA 2 x > 3 c l a s s ( x ) 故当判断是否相等时不能使用 1 x == NA 6需要包 DBI 的支持 7R 共有三个逻辑值 TRUE、FALSE、NA 11 来判断缺失值。而是使用函数 is.na()来判断是否为缺失值,使用 1 x [ ! i s . na ( x ) ] 删除缺失值。 48. 如何将字符串转变为命令行? 这里用到 eval() 和 parse() 函数。首先使用 parse() 函数将字符串转化为表达式( expression), 而后使用 eval() 函数对表达式求解。 1 x <− 1:10 a <− ” p r i n t ( x ) ” 3 c l a s s ( a ) e v a l ( parse ( t e x t = a ) ) 但在字符串转化为 expression 过程中可能会有一些小麻烦,比如下面这种情况: a <− 3 2 x <− 4 s t r 2 e x p r <− f u n c t i o n ( x ){ e v a l ( parse ( t e x t = x ) ) } 4 str2expr(’a + a* s q r t ( x ) ’ ) 但这时候会报错,原因是参数名为 x,且外部的变量名也为 x,而实际上 eval 在对 expression 做 eval 的时候优先找最近的上一层的 x,也就是 “参数 x”,而不是 “数字 x”,所以 sqrt 要报错。 那么上面的代码需要变通一下: a <− 3 2 x <− 4 s t r 2 e x p r <− f u n c t i o n ( y ){ e v a l ( parse ( t e x t = y ) ) } 4 str2expr(’a + a* s q r t ( x ) ’ ) 或者设置函数表达式中的所有变量都是全局变量,即在 eval 能够在 .GlobalEnv中能找到: s t r 2 e x p r <− f u n c t i o n ( x ){ e v a l ( parse ( t e x t = x), .GlobalEnv)} 49. 如何向一个向量加元素? 参考 append()函数。 1 x <− 1 : 5 ( foo <− c (x[1],0,x[2:5])) # expected result 3 append (x , 0 , after =1) 50. 如何除某行 (列) 数据 可以使用函数 subset(select = ) ;或者使用下标: 12 1 x <− data . frame ( matrix ( 1 : 3 0 , nrow = 5, byrow = T)) dim( x ) 3 p r i n t ( x ) new . x1 <− x[−c (1,4),] #row 5 new . x2 <− x[ , − c [ 2 , 3 ] ] #c o l new . x1 ; new . x2 事实上,关于选取特定条件下的数据框数据,subset 函数同使用下标效果相同: iS <− i r i s $ Species == ”setosa” 2 i r i s [ iS , c ( 1 , 3 ) ] subset (iris , select = c (Sepal.Length, Petal.Length), 4 Species == ”setosa”) 51. 如何比较两个数据框是否相同? 比较每个元素是否相同,如果每个元素都相同,那么这两个数据框也相同 a1 <− data . frame (num = 1:8,lib = letters[1:8]) 2 a2 <− a1 a2 [ [ 3 , 1 ] ] <− 2 −> a2 [ [ 8 , 2 ] ] 4 any ( a1 !=a2) # all(a1 == a2) any() 函数可以返回是值是否至少有一个为真的逻辑值。而数据框中的元素有不相等的情况,则 a1 !=a2 将返回至少一个 TRUE,那么 any() 函数将判断为 TRUE。同样也可以使用 identical() 函数。 1 indentical(a1,a2) 如果需要返回两个数据框不相同的位置,可以使用 1 which ( a1 !=a2, arr.ind = TRUE) arr.ind 参量是array indices 之意,返回数据框的行列位置。 52. 我的数据框有相同的行,如何去掉这些行? 参考 unique 函数。unique 函数可以去掉向量、数据框或类似数列的数据中重复的元素。 1 x <− c (9:20, 1:5, 3:7, 0:8) ( xu <− x [ ! d u p l i c a t e d ( x ) ] ) 3 unique (x) # is more efficient 这里 duplicated 函数返回了元素是否重复的逻辑值。 13 53. 如何对数列(array)进行维度变换? 使用函数 aperm 1 x <− array ( 1 : 2 4 , 2 : 4 ) xt <− aperm (x , c ( 2 , 1 , 3 ) ) 3 dim( x ) ; dim( xt ) 54. 如何删除 list 中的元素? R 中使用 NULL 表示无效的对象。 1 l s t <− l i s t ( ”a”=l i s t (”b”=1,”c”=2),”b”=l i s t (”d”=3,”e”=4)) lst [[”a”]][”b”] <− NULL # or l s t $a$b <− NULL 3 l s t 55. 如何对矩阵行 (列) 作计算? 使用函数 apply() 1 vec =1:20 mat=matrix ( vec , ncol =4) 3 vec cumsum( vec ) 5 mat apply (mat , 2 ,cumsum) 7 apply (mat , 1 ,cumsum) 56. 如何注掉大段的 R 本 如果你使用支持正则表达式的文本编辑器的话,可以考虑用正则表达式 (Regular Expres- sion) ;或者将大段的代码写入一个 *.R 文件,如果需要注掉的话,在 source(*.R) 前加入 # 即 可;还可以使用 1 i f (FALSE){ something passby 3 } 57. 如何对数据框 (data frame) 的某列作数学变换? 使用 transform() 函数对其操作,具体参考?transform 58. 如何求解两组平行向量的极值? pmax() 和 pmin() ,如: 14 1 x <− 1:10 ; y <− rev ( x ) pmax(x , y ) ; pmin(x , y ) 59. 如何对不规则数组进行统计分析? 参考 tapply() : n <− 1 7 ; f a c <− f a c t o r ( rep (1:3, len = n), l e v e l s = 1 : 5 ) 2 t a b l e ( f a c ) tapply ( 1 : n , fac , sum) 4 tapply ( 1 : n , fac , mean) ## or reverse a list 6 to <− l i s t ( a = 1 , b = 1 , c = 2 , d = 1) tapply ( to , u n l i s t ( to ) , names ) tapply() 的常见于方差分析中对各个组别进行 mean、var(sd)的计算。说到概要统计,不得不 说另外一个函数 aggregate(),它将 tapply() 函数对象为向量的限制扩展到了数据框。8 1 attach (warpbreaks) tapply ( breaks , l i s t (wool,tension),mean) 3 aggregate ( breaks , l i s t (wool,tension),mean) ## from the help 5 aggregate (state.x77, l i s t (Region = state.region , 7 Cold = state.x77[,”Frost”] > 130), mean) 60. 判断数据框的列是否为数字? 使用 sapply 函数 sapply (dataframe , i s . numeric ) sapply 有循环之意,即返回了 dataframe 的每一列的信息,同样还可以显示内存中所有对象 的占用大小: 1 sapply ( l s (), f u n c t i o n ( x ) round (object.size( get ( x ) ) /1024/ 1024)) 61. 一组数中随机抽取数据? 函数 sample() 8当然同样概要统计的表现形式不一样 15 sample(n) 随机组合 1, . . . , n sample(x) 随机组合向量 x, length(x) > 1 sample(x, replace = T) 解靴带法 sample(x,n) 非放回的从 x 中抽取 n 项 sample(x,n, replace = T) 放回的从 x 中抽取 n 项 sample(x,n, replace = T ,prob = p) 以概率 p,放回的从 x 中抽取 n 项 1 n <− 1000 x <− sample ( c ( −1 ,1) , n , r e p l a c e=T) 3 p l o t (cumsum(x), type=”l”, main=”Cumulated sums of Bernoulli variables”) 还可以参考第 20 页中关于模拟已知分布的随机数据函数,如: rnorm (100 , mean=0, sd=1) 62. 如何根据共有的列将两个数据框合并? 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同。处理的办法 就是使用 merge(x, y ,by.x = ,by.y = ,all = ) 函数。 如果你对 SQL 语言非常熟悉,还可以使用 sqldf 包来进行数据框合并,这个包可以让用户 在 R 环境下使用标准 SQL 语言进行数据的预处理: 1 example ( merge ) sqldf(”select * from authors a1, books a2 3 where a1.surname = a2.name”, method = ’character ’) (m1 <− merge (authors , books, by .x = ”surname”, by .y = ”name”)) 当然 sqldf 的作用远远不止于此,一般性 SQL 数据操作均可以实现。 63. 如何将数据标准化? 参考 scale 函数。 x <− c ( rnorm ( 1 0 0 ) , 2*rnorm ( 3 0 ) ) 2 m <− s c a l e ( x , s c a l e =F) # only centering n <− s c a l e (x , center =F) # only scaling 64. 为什么 fivenum 和 summary 两个函数返回的结果不同? 因为他们对数据描述机理一致,所以有些教材将二者等同,但他们确实有细微差别。 1 > fivenum ( c (1,4,6,17,50,51,70,100)) [1] 1.0 5.0 33.5 60.5 100.0 16 3 > q u a n t i l e ( c (1,4,6,17,50,51,70,100)) 0% 25% 50% 75% 100% 5 1.00 5.50 33.50 55.75 100.00 我们看下他们的的定义:分位数是指有百分之多少的数据小于的数值 9,我们可以看到关于 1 4 , 3 4 分位数位置的定义: 1 + 1 4(length(x) − 1),1 4分位数位置 1 + 3 4(length(x) − 1),3 4分位数位置 那么数据 1 c (1,4,6,17,50,51,70,100) 的两个四分位数的位置分别为 1 + 7 4 = 2.75, 1 + 21 4 = 6.25 故对应分位数为 4 + (6 − 4) × 0.75 = 5.5, 51 + (70 − 51) × 0.25 = 55.75 而 fivenum() 函数中 NL(下)和 NU(上)两个数,是两次利用中位数概念:先取中位数将数 据分为上下两部分当然,如果 length(x) 为偶数,那么数据刚好被分为两部分,如果 lenght(x) 为奇数,那么中位数同属上下两部分,然后再取各部分的中位数,即为 NL,NU。 E 数学运算 65. 如何做出线积分? R 语言使用 integrate 函数来得到积分结果,如 1 i n t e g r a t e (dnorm , −1.96 , 1 . 9 6 ) i n t e g r a t e (dnorm , −Inf , I n f ) 3 ## a slowly−convergent integral integrand <− f u n c t i o n ( x ) {1/( ( x+1)* s q r t ( x ) ) } 5 integrate(integrand , lower = 0 , upper = I n f ) 66. 如何得到一个列向量? 矩阵转置可以使用函数 t() ,R 中默认 x 为 “integer” 类型数据,这时可以用 t(t(x)) 得到 列向量: 9summary() 函数,即使用分位数概念 17 1 x <− 1:10 ; c l a s s ( x ) t ( x ) ; c l a s s ( t ( x ) ) 3 t ( t ( x ) ) ; c l a s s ( t ( t ( x ) ) ) 行向量、列向量常常会有一个比较容易让人迷糊的地方: 1 x%*%x 计算的是 xT x(计算 xxT 使用 %o% 或 outer() 函数)。 crossprod() 函数能避免这种情况: 1 XT. y <− crossprod (X, y ) 它直接计算 XTY,可以看作前者的另一种表达方式,当然 crossprod() 更为有效 10。由于 outer() 函数的矩阵意义,它常用于三维绘图数据,比如我们计算 10 × sin √ x2 + y2√ x2 + y2 那么对应的 R 函数计算为: 1 f <− f u n c t i o n (x , y ) { r <− s q r t (x^2+y^2); 10 * s i n ( r ) / r } z <− outer (x , y , f ) 67. R 如何进行复数计算? 参考 complex() 函数的帮助。 x <− 1 + 1 i # x <− complex(1,1) 2 Mod( x ) ; Conj ( x ) 68. 如何生成对角矩阵? 对一个向量使用 diag() 函数,得到对角线元素为向量的对角矩阵;对整数 Z 使用此函数得 到 Z 维的单位矩阵。 69. 求矩阵的特征值和特征向量的函数是什么? 参考 eigen 函数。已知 A =   −1 2 2 2 −1 −2 2 −2 −1   试求 B = ( 1 2A−1) + E 的特征值。 A <− matrix ( c ( −1 ,2 ,2 ,2 , −1 , −2 ,2 , −2 , −1) ,3 ,3) 2 m <− s o l v e ( 0 . 5 *A) + diag ( c ( 1 , 1 , 1 ) ) ei ge n (m) 这里还使用了函数 solve() ,这个函数用于运算 10当矩阵很大时,会非常明显, 18 1 a%*%x = b 而得到 x,当然也可以用来求矩阵的逆。 70. 如何构造上(下)三角矩阵? 参考函数 lower.tri() 和 upper.tri() 。 1 Rmat <− matrix ( 1 : 1 6 , 4 , 4 ) Rmat [ lower . t r i (Rmat ) ] <− 0 3 Rmat 71. 求立方根如何运算? xˆ(1/3)。在 R 里面 sqrt() 函数可以计算开平方,故新手容易推测开立方也有函数。事实上 R 里面使用 ˆ 来作幂函数运算。ˆ 不但是运算符号,还可以看作是函数: 1 ”^” ( x , 1/ 3) 在 R 中的运算符号包括: R 中的运算符号 数学运算 +,-,*,/,ˆ,%%,%/% 加、减、乘、除、乘方、余数、整除 逻辑运算 >, <, >=, <=, ==,! = 大于,小于,大于等于,小于等于,等于,不等于 72. 如何求矩阵各行 (列) 的均值? 如果运算量不是很大,当然可以使用 apply() 函数。rowMeans() 和 colMeans() 函数可以更 快地得到你要的结果。 1 m <− 1000 ; n <− 3000 A <− matrix ( 1 :m*n ,m , n) 3 system . time (B1 <− matrix ( apply (A, 2 , mean) , m, n ,by = TRUE) ) system . time (B2 <− matrix (colMeans(A), m, n, by = TRUE) ) 或者使用 sqldf 包来处理。 73. 如何计算组合数或得到所有组合? choose() 用于计算组合数 (n k ) ,函数 combn() 可以得到所有元素的组合。使用 factorial() 计 算阶乘。希望大家还记得组合公式: Cm n = !n !m!(n − m) 74. 如何在 R 里面求(偏)导数? 使用函数 D() 19 f 1 <− e x p r e s s i o n ( s i n ( x ) *x ) 2 f 2 <− e x p r e s s i o n ( x^2*y + y^2) D( f , ”x” ) 75. 如何模拟高斯(正态)分布数据? 使用 rnorm(n , mean , sd) 来产生 n 个来自于均值为 mean,标准差为 sd 的高斯(正态) 分布的数据。在 R 里面通过分布前增加字母 ‘d’ 表示概率密度函数,‘p’ 表示累积分布函数,‘q’ 表示分位数函数,‘r’ 表示产生该分布的随机数。这些分布具体可以参考第 24 页中 “如何做密度 线”,或 R-intro 中的 Probability distributions章节,或 1 help . search (”distribution”) 如已知 X ˜ N(3, 1),计算 P(2 6 X 6 5) 利用正态分布的累积分布函数 pnorm 1 pnorm ( 5 , 3 , 1 ) − pnorm ( 2 , 3 , 1 ) 计算结果为 0.8185946,即图 1 中阴影的面积。 −2 0 2 4 6 8 0.0 0.1 0.2 0.3 0.4 Density P(2>=$ 为开头,$@$为结尾的段落里面。开头部分 有两个常用的参数:echo和fig,使用逻辑值分别表示是否将 R 代码输入 作为 \LaTeX{} 文本输出;是否在 \LaTeX{} 文档中绘制图形。 这篇文档只需要在 R 中编译一遍,即可形成\LaTeX{}需要的输出(文件)。 下面是一个配对 t 检验的一个例子: <>= require(stats) ## Student's paired t-test m <- t.test(extra ~ group, data = sleep, paired = TRUE) print(m) @ R 在计算过程中生成的的中间结果很容易插入到标准文档, 比如\texttt{sleep}数据的双样本的配对t检验结果 中的$p$-value是\Sexpr{format.pval(m$p.value)}; 或者是直接运算 <>= choose(49,6) @ 美国威力球(类似于福彩双色球)的理论组合数等于\Sexpr{choose(49,6)}。 43 通过这种方法处理``有大量计算''的文档,比 word 不知方便多少倍。 R 代码中可以随意写注释,但这些注释默认不会被输出。如果要求输出注释, 抱歉,现在还没有更好的解决办法。 使用 Sweave 还可以将 R 生成的图形加入到 \LaTeX{} 文档中,而不必事先 做出 \LaTeX{} 需要的图形文件\footnote{Sweave会自动生成 ps 和 pdf 图形}。 下图是根据Titanic号海难中人员的经济状况、性别、年龄和是否存活四 个变量绘制的马赛克图: <>= require(graphics) mosaicplot(Titanic, main = "Survival on the Titanic") @ \end{document} Copyright ©2012 R and all the Contributors to R FAQ. All rights reserved. R 以及 R FAQ 的作者拥有版权 ©2012。保留所有权利。 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being Contributors, no Front-Cover Texts, and no Back-Cover Texts. 你可以拷贝、发布或者修改这份文档,但必须遵守 自由软件组织颁布的 GNU 自由文档许可证 1.2 或者以 后版本的条款。Invariant Sections 包括 Contributors,没有 Front-Cover Texts 和 Back-Cover Texts。 44 Index Symbols \\ ......................... 11 ............................ 21 .GlobalEnv . . . . . . . . . . . . . . . . 12 .packages . . . . . . . . . . . . . . . . . . . 6 /...........................11 %*%. . . . . . . . . . . . . . . . . . . . . . .18 ˆ....................... 19, 35 {}......................... 14 A abline. . . . . . . . . . . . . . . . . . . . . .24 aggregate . . . . . . . . . . . . . . . . . . 15 any........................ 13 aov........................ 36 aperm . . . . . . . . . . . . . . . . . . . . . 14 append . . . . . . . . . . . . . . . . . . . . 12 apply . . . . . . . . . . . . . . . 14, 19, 30 as.Date . . . . . . . . . . . . . . . . . . . . 22 as.numeric . . . . . . . . . . . . . . . . . 25 as.POSIXct . . . . . . . . . . . . . . . . 22 axes . . . . . . . . . . . . . . . . . . . . . . . 25 axis . . . . . . . . . . . . . . . . . . . . . . . .25 B barplot . . . . . . . . . . . . . . . . .27, 28 boxcox . . . . . . . . . . . . . . . . . . . . .39 bptest . . . . . . . . . . . . . . . . . . . . . 39 Breusch-Pagan . . . . . . . . . . . . . 39 C cancor . . . . . . . . . . . . . . . . . . . . . 39 capture.output . . . . . . . . . . . . . . 9 car . . . . . . . . . . . . . . . . . . . . . . 8, 39 casefold . . . . . . . . . . . . . . . . . . . . 21 choose . . . . . . . . . . . . . . . . . . . . . 19 citation . . . . . . . . . . . . . . . . . . . . . 3 clipboard . . . . . . . . . . . . . . . . . . 10 cm.colors . . . . . . . . . . . . . . . . . . 28 col . . . . . . . . . . . . . . . . . . . . . . . . . 27 col2rgb . . . . . . . . . . . . . . . . . . . . 28 colMeans . . . . . . . . . . . . . . . . . . 19 colors . . . . . . . . . . . . . . . . . . . . . . 27 combn . . . . . . . . . . . . . . . . . . . . . 19 Commander. . . . . . . . . . . . . . . .40 complex . . . . . . . . . . . . . . . . . . . 18 confint . . . . . . . . . . . . . . . . . . . . . 36 confint.glm. . . . . . . . . . . . . . . . .36 confint.nls . . . . . . . . . . . . . . . . . 36 contour . . . . . . . . . . . . . . . . . . . . 30 crossprod . . . . . . . . . . . . . . . . . . 18 cumsum . . . . . . . . . . . . . . . .14, 29 curve . . . . . . . . . . . . . . . . . . . . . . 29 cutree. . . . . . . . . . . . . . . . . . . . . .34 D D.......................... 19 data . . . . . . . . . . . . . . . . . . . . . . . . 7 data frame . . . . . . . . . . . . . . 7, 14 demo . . . . . . . . . . . . . . . . . . . . . . . 3 detach . . . . . . . . . . . . . . . . . . . . . . 6 dev.copy . . . . . . . . . . . . . . . . . . . 28 dev.cur . . . . . . . . . . . . . . . . . . . . 27 dev.list . . . . . . . . . . . . . . . . . . . . 27 dev.off . . . . . . . . . . . . . . . . . . . . . 27 dev.set . . . . . . . . . . . . . . . . . . . . .27 Devices . . . . . . . . . . . . . . . . . . . . 26 diag . . . . . . . . . . . . . . . . . . . . . . . 18 difftime . . . . . . . . . . . . . . . . . . . . 22 duplicated . . . . . . . . . . . . . . . . . 13 durbin.watson. . . . . . . . . . . . . .37 dwtest . . . . . . . . . . . . . . . . . . . . . 37 E edit . . . . . . . . . . . . . . . . . . . . . . . . 10 eigen. . . . . . . . . . . . . . . . . . . . . . .18 ESS. . . . . . . . . . . . . . . . . . . . . . . .41 eval . . . . . . . . . . . . . . . . . . . . . . . .12 F factanal . . . . . . . . . . . . . . . . . . . .34 factorial . . . . . . . . . . . . . . . . . . . 19 FALSE . . . . . . . . . . . . . . . . . . . . 14 file.choose. . . . . . . . . . . . . . . . . .11 filled.contour. . . . . . . . . . . . . . .30 fivnum . . . . . . . . . . . . . . . . . . . . . 17 fix......................... 10 format . . . . . . . . . . . . . . . . . . . . . 22 G gc......................... 41 getAnywhere . . . . . . . . . . . . . . . . 8 getwd . . . . . . . . . . . . . . . . . . . . . . . 6 glm . . . . . . . . . . . . . . . . . . . . . . . . 36 gray . . . . . . . . . . . . . . . . . . . . . . . 28 grep . . . . . . . . . . . . . . . . . . . . . . . 21 grey . . . . . . . . . . . . . . . . . . . . . . . 28 grid. . . . . . . . . . . . . . . . . . . . . . . .26 H hat,hatvalues . . . . . . . . . . . . . . 37 hclust. . . . . . . . . . . . . . . . . . . . . .34 head . . . . . . . . . . . . . . . . . . . . . . . . 8 heat.colors . . . . . . . . . . . . . . . . . 28 help. . . . . . . . . . . . . . . . . . . . . . . . .4 help.search . . . . . . . . . . . . . . . . . . 4 45 I I........................... 35 identical . . . . . . . . . . . . . . . . . . . 13 if.......................... 14 image . . . . . . . . . . . . . . . . . . . . . . 30 integer . . . . . . . . . . . . . . . . . . . . . 17 integrate . . . . . . . . . . . . . . . . . . . 17 iris. . . . . . . . . . . . . . . . . . . . . . . . .25 is.na . . . . . . . . . . . . . . . . . . . . . . . 12 J jarque.bera.test . . . . . . . . . . . . 35 jpeg . . . . . . . . . . . . . . . . . . . . . . . 28 K kmeans . . . . . . . . . . . . . . . . . . . . 33 knitr . . . . . . . . . . . . . . . . . . . . . . .42 ks.test . . . . . . . . . . . . . . . . . . . . . 34 L latex . . . . . . . . . . . . . . . . . . . . . . .10 latex.table . . . . . . . . . . . . . . . . . 10 layout. . . . . . . . . . . . . . . . . . . . . .23 lda. . . . . . . . . . . . . . . . . . . . . . . . .39 legend . . . . . . . . . . . . . . . . . . . . . 25 letters . . . . . . . . . . . . . . . . . . . . . 28 Library . . . . . . . . . . . . . . . . . . . . . 6 library. . . . . . . . . . . . . . . . . . . .5, 6 lines . . . . . . . . . . . . . . . . . . . . . . . 29 list . . . . . . . . . . . . . . . . . . . . . . . . . .5 lm......................... 36 lm.ridge. . . . . . . . . . . . . . . . . . . .36 lmtest. . . . . . . . . . . . . . . . . . . . . .39 loadings. . . . . . . . . . . . . . . . . . . .34 lower.tri . . . . . . . . . . . . . . . . . . . 19 ls........................... 5 M mai . . . . . . . . . . . . . . . . . . . . . . . . 23 mar. . . . . . . . . . . . . . . . . . . . . . . .23 matrix . . . . . . . . . . . . . . . . . 14, 19 memory.limit. . . . . . . . . . . . . . . .4 merge. . . . . . . . . . . . . . . . . . . . . .16 methods . . . . . . . . . . . . . . . . . . . . 8 N nchar . . . . . . . . . . . . . . . . . . . . . . 22 ncv.test . . . . . . . . . . . . . . . . . . . . 39 NULL . . . . . . . . . . . . . . . . . . . . . 14 O optimize . . . . . . . . . . . . . . . . . . . 20 options. . . . . . . . . . . . . . . . . . . . . .5 outer . . . . . . . . . . . . . . . . . . . . . . 18 P Package . . . . . . . . . . . . . . . . . . . . .6 cluster . . . . . . . . . . . . . . . . . 34 plotrix . . . . . . . . . . . . . . . . . 25 Rcmdr . . . . . . . . . . . . . . . . .40 rpart . . . . . . . . . . . . . . . . . . 38 sem. . . . . . . . . . . . . . . . . . . .35 stats . . . . . . . . . . . . . . . . . . .34 tseries . . . . . . . . . . . . . . . . . 35 par . . . . . . . . . . . . . . . . . 23, 25, 30 parallel . . . . . . . . . . . . . . . . . . . . 40 parplot . . . . . . . . . . . . . . . . . . . . 31 parse . . . . . . . . . . . . . . . . . . . . . . 12 paste . . . . . . . . . . . . . . . . . . . . 5, 21 pch........................ 25 pdf........................ 28 persp . . . . . . . . . . . . . . . . . . . . . . 30 pictex. . . . . . . . . . . . . . . . . . . . . .28 pie . . . . . . . . . . . . . . . . . . . . . . . . .25 plotmath. . . . . . . . . . . . . . . . . . .31 pmax . . . . . . . . . . . . . . . . . . . . . . 14 pmin. . . . . . . . . . . . . . . . . . . . . . .14 png . . . . . . . . . . . . . . . . . . . . . . . . 28 points. . . . . . . . . . . . . . . . . . . . . .23 poly . . . . . . . . . . . . . . . . . . . . . . . 37 postscript . . . . . . . . . . . . . . . . . . 28 princomp . . . . . . . . . . . . . . . . . . 34 print . . . . . . . . . . . . . . . . . . . . . . .10 proc.time . . . . . . . . . . . . . . . . . . 40 prompt . . . . . . . . . . . . . . . . . . . . . 5 Q qda . . . . . . . . . . . . . . . . . . . . . . . . 39 qqnorm . . . . . . . . . . . . . . . . . . . . 30 qr.solve . . . . . . . . . . . . . . . . . . . . 39 Quantile Regression . . . . . . . . 33 R rainbow . . . . . . . . . . . . . . . . . . . .28 rattle . . . . . . . . . . . . . . . . . . . . . . 40 read.table . . . . . . . . . . . . . . . . . .10 read.xls . . . . . . . . . . . . . . . . . . . . . 9 rect . . . . . . . . . . . . . . . . . . . . . . . . 31 Regular Expressions . . . . 14, 21 rev. . . . . . . . . . . . . . . . . . . . . . . . .14 rgb . . . . . . . . . . . . . . . . . . . . . . . . 27 rm.......................... 5 RMySQL . . . . . . . . . . . . . . . . . . 11 rnorm . . . . . . . . . . . . . . 20, 25, 29 RODBC . . . . . . . . . . . . . . . . . . . 11 rowMeans. . . . . . . . . . . . . . . . . .19 RSiteSearch . . . . . . . . . . . . . . . . .4 S sample . . . . . . . . . . . . . . . . . . . . .15 sapply . . . . . . . . . . . . . . . . . . . . . 15 save.........................6 save.image . . . . . . . . . . . . . . . . . . 6 savePlot . . . . . . . . . . . . . . . . . . . 28 scale . . . . . . . . . . . . . . . . . . . . . . . 16 46 screeplot . . . . . . . . . . . . . . . . . . . 34 search. . . . . . . . . . . . . . . . . . . . . . .6 setwd . . . . . . . . . . . . . . . . . . . . . . . 6 shapiro.test . . . . . . . . . . . . . . . . 34 shell.exec . . . . . . . . . . . . . . . . . . . 5 show.error.messages . . . . . . . . 5 sink . . . . . . . . . . . . . . . . . . . . . 9, 10 solve . . . . . . . . . . . . . . . . . . . . . . . 18 some . . . . . . . . . . . . . . . . . . . . . . . . 8 sort . . . . . . . . . . . . . . . . . . . . . . . . 25 source . . . . . . . . . . . . . . . . . . . . . 10 spline . . . . . . . . . . . . . . . . . . . . . . 29 split.screen. . . . . . . . . . . . . . . . .23 sqldf . . . . . . . . . . . . . . . . . . . . . . . 19 sqrt . . . . . . . . . . . . . . . . . . . . . . . .19 stars . . . . . . . . . . . . . . . . . . . . . . . 27 stem . . . . . . . . . . . . . . . . . . . . . . . 25 step. . . . . . . . . . . . . . . . . . . . . . . .33 strwrap . . . . . . . . . . . . . . . . . . . . 26 subset . . . . . . . . . . . . . . . . . . . . . 12 substr. . . . . . . . . . . . . . . . . . . . . .21 survfit . . . . . . . . . . . . . . . . . . . . . 39 Sweave. . . . . . . . . . . . . . . . . . . . .41 system . . . . . . . . . . . . . . . . . . . . . . 5 system.time . . . . . . . . . . . . 19, 40 T t...........................17 t.test . . . . . . . . . . . . . . . . . . . . . . 33 table. . . . . . . . . . . . . . . . . . . . . . .32 tail . . . . . . . . . . . . . . . . . . . . . . . . . 8 tapply . . . . . . . . . . . . . . . . . . . . . 15 terrain.colors. . . . . . . . . . . . . . .28 tolower . . . . . . . . . . . . . . . . . . . . 21 topo.colors . . . . . . . . . . . . . . . . . 28 toupper . . . . . . . . . . . . . . . . . . . . 21 transform . . . . . . . . . . . . . . . . . . 14 twoord.plot . . . . . . . . . . . . . . . . 25 U unique . . . . . . . . . . . . . . . . . . . . . 13 uniroot . . . . . . . . . . . . . . . . . . . . 20 update . . . . . . . . . . . . . . . . . . . . .32 update.packages. . . . . . . . . . . . .5 upper.tri . . . . . . . . . . . . . . . . . . . 19 W windows . . . . . . . . . . . . . . . . . . . 28 with . . . . . . . . . . . . . . . . . . . . . . . 25 X xlsReadWrite . . . . . . . . . . . . . . . 9 xtable. . . . . . . . . . . . . . . . . . . . . .10 47
还剩47页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

cgm1120

贡献于2015-06-26

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf