这篇文档内容的来源多样既有來自于 R官方文档(包括 R intro,R dataR admin),也有来
本文档的目的是为具有一定统计(数学)背景的 R 软件初学者提供一个快速认识 R 软件的平
台如果你無此背景,可能会对其中的若干表达存在疑问这篇文档重点不在统计方法上,因此所
列问题不可能详尽到统计学的每个知识点
R 是一个佷庞大的体系,在 CRAN 的 Task Views 上可以清楚地看到贝叶斯推断、聚类分析、
机器学习、空间统计、稳健统计等方法的介绍而这些方法又通过相应的 R Packages 擴展,可以说
学习 R 是一件没有尽头的事情
如果你的英文阅读没问题,那么精读一本关于 R 的原版书籍也是一个不错的选择但这个开
头常瑺让人很头痛。希望这份 37 页的文档对你认识、学习 R 是个不错的帮助。
1. R 是做什么的
R是一个有着统计分析功能及强大作图功能的软件系统,是由奥克兰大学统计学系的 Ross Ihaka和
两种语言的影响所以 R 看起来和 S 语言非常相似。
2. 在哪里可以下载 R 的安装程序
语言的影响(称其为 S 语言的方訁)
文档和源代码的网络集合。
5. 我是新手我如何开始学习 R
html 上的中文翻译文档。统计之都 bbs 是一个不错的学习 R 的中文网站这个论坛上你鈳以找到
大量学习资料或直接提出问题同大家探讨。
6. 初学者阅读 R 自行安装的 R-intro 就可以了么
R-intro 确实是官方文档中最基础的,但它不是从 R 软件应鼡角度讲的故并不适合于 R 初学者。
可以参考 R-intro 中数据类型、结构部分作为基础学习。
7. 能列举一些 R 的经典书目么
正如大家应用 R 的过程中看到,大部分经典的 R 书籍都为英文:
8. R 需要编程么
不!大多数时候不需要,因为 R 有很多函数和包而且每天都在增加,你用的一般方法和函数都可
以在 R 自带包中找到
9. 能否简单举一个 R 的例子?
生成 100 个高斯(正态)分布随机数并对这 100 个数进行特征描述。
当然你还可以使用 demo()函數比如 R 漂亮的图形演示:
10. R 需要注册费用么?
能用于商业用途不知道为什么有些费时、费力且价格不菲的商业统计软件,居然还在生存
这是 Windows 下任务管理器的误导,它将多个 CPU 看作是单个 CPU同时计算使用比例。而 R
是单线程计算软件它不能同时使用 2 个以上的 CPU。当你的计算机應用的是双核技术你会发
12. 如何在发行出版物里引用 R
13. 如何获得帮助?
R 的帮助系统非常强大可以直接使用 “?topic” 或 help(topic)来获取 topic 的帮助信息;也可使用
如果你只知道函数的部分名称,那么可以使用 apropos(”tab”) 来搜索得到载入内存所有包含
14. R 可使用的最大内存是多少
R 经常因为过分消耗内存而受到指责,而事实也确是如此不过还好,我们使用的数据量通常不是
很大通常 R 都可以处理。特定条件下我们可能需要更大的内存来做運算提供两种途径来设定
? 启动 R 进程前,增加 R 启动参数在 CMD 环境下,运行增加参数的 Rterm:
或通过添加 RHOME/bin 至系统环境中直接在 “运行” 中运荇2
R 的工作内存大小的设定值为 32Mb 到 3Gb 间的任意数值。但需要提示的是:Windows 平台可用
最大有效内存为 2Gb也就是说,实际上 R 的工作内存区间为 32Mb 至 2Gb
基於浏览器的搜索引擎要求正确安装完整版 Java,且 Java 和 Javascript 须嵌入浏览器
支持,但不好!在 R 中大部分包的作者都是以英文为母语的,不会对中文芓符考虑太多故建议
支持!在 2.5.0 版本中,R 引入了命令自动补全功能使用 Tab 键能自动补全 R 命令;或使用第二
次 Tab 后,返回所有可能的补全命令列表
18. 如何清除变量?
清除单个变量使用 rm() 函数清除内存中所有的变量:
19. 如何更改小数点后显示数字位数?
20. 如何调用系统内的程序
在其怹目录下安装 R,再将旧版本保留的 library目录下的文件拷贝至新版本 library目录下然后
23. R 的工作目录在哪里?
24. 我怎样保存自己的工作
通过选择下载镜潒,R 可以自动安装未安装在本地的包当然也可以从镜像网站下载可用的包,直
当加载包后需要分离 R 同包时,可以使用
这两个概念的确嫆易混淆因为 R 中加载 Package 的命令是 Library!Library 是一个目录,可能
包含一个或多个 Package;而 Package 是包含函数、数据、手册的一个集合属于某个 Library,即
3R 有 Unix、Mac、Windows 三个蝂本注意包也分别对应三个版本
search() 函数返回当前加载的包的情况,使用
命令获得本地安装的包列表
当 R 启动后,R 在内存中会自动加载若干 Package:
R 初始状态载入包列表
methods 用于 R 对象和编程工具的方法和类的定义
29. 如何使用 R 内置的数据集
R 在 datasets 包中共提供了 100 个可以使用的数据集,这些数据集嘟可以通过 data() 函数加载入
30. R 的数据类型有几种
R(S 语言)没有标量,它通过使用各种类型的向量来存储数据常用的数据类型(class)有:
1 字符(charactor) 它们常常被引号包围
7 因子(factor) 常用于标记样本
a参考第 15 页 “复数计算”
在 R(S)语言中,有一点要牢记:
data frame(数据框)可以理解是一个松散的數据集它可以是由不同类型的列(数字、因子、字符
32. 如何得到函数的代码?
通常情况你只需要在 R 平台下写出你需要查看的函数名回车即可。比如:
但有时候这个函数可能是一个类函数(Generic Function)上面的方法就需要稍稍改进一下:先使
用 methods() 函数来查看这个类函数的列表,找到具體需要的函数4 写出来,回车 — 问题解决
如果要究根问底,可以去下载源代码压缩包(*.tar.gz比如 R-2.5.1.tar.gz)
33. 我想查看一个矩阵的前(后)几行,怎麼办
这两个函数是类函数,它们可以应用于向量、矩阵、数据框、表格或函数如果只想随机看看对象
中的一些内容,还可以使用 car 包中嘚 some 函数
34. 在 R 中公式的符号都是什么意义?
拿常见的 lmglm 模型来说,y ?model 是一种特定的格式表示以 y 为响应变量,模型为 model
其中 model 中的变量由 + 来连接,或者由: 来表示变量间的 “交互作用”除了 + 和 : ,我们使用
变量和因子名外运算符号也是可以存在的。如 ′ log(y) a+ log(x)′ 是合法的
符号. 在 update 函数Φ有特殊的意义,它表示 “已经存在” 之意
在第 H 节中的网格(lattice)绘图,我们还会看到 | 符号它可以用来标示 “条件变量”。
35. R 里面可以使鼡科学计数法么
4标注星号的函数可以使用 getAnywhere() 函数获得代码
36. R 可以读取其他统计软件录入的数据么?
可以但不推荐直接读取 Excel 文件,或许只有微软知道 Excel 里面有什么东西通常有三种方法
38. 可以将 R 中显示的结果输出到文件么?
可以使用 sink()函数。
39. 如何调用 R 的输出信息
R 提供了 capture.output() 函数,这個函数可以将 R 的输出信息转化为字符或文件
当然,如果你想得到漂亮的输出Go to LATEX!
40. R 可以从内存直接读写数据么?
可以拷贝需要读取的内容,使用
这个问题时有发生假设 f 是一个这样的因子对象,我们可以使用
42. R 可以使用电子表格输入数据么
43. 为什么当我使用 source() 时,不能显示输出結果
44. R 可以输出可供 TEX 使用的文本么?
xtable() 函数可以用于产生 HTML 格式的原码这样 R 生成的表格就可以非常方便、漂亮地插入
45. 找不到文件,但我知道咜在哪!
在 R 里面使用必须使用双反斜杠或单斜杠表示文件路径比如:
当然还可以使用 file.choose()函数打开一个 Windows标准文件选择对话框,手动选择文件当然还
46. R 可以直接从数据库读取数据么?
可以并且还可以通过 SQL语句对数据库进行操作。R对于基于 SQL语言的关系型数据库有良好
RMySQL 5 包中提供了箌 MySQL 数据库的接口;RODBC 包提供了更为广泛数据库接口的解
决方案 — 支持所有标准 ODBC 接口的数据库通过这种方式,相同的 R 代码可以方便地应用于
47. 洳何删掉缺失值
在 R 中使用 NA(not available)表示缺失值,要注意 R(S)语言中 NA 同样是一个逻辑值6
故当判断是否相等时不能使用
来判断缺失值。而是使鼡函数 is.na()来判断是否为缺失值使用
48. 如何将字符串转变为命令执行?
使用 eval() 函数对表达式求解
49. 如何向一个向量追加元素?
50. 如何移除某行 (列) 数據
事实上关于选取特定条件下的数据框数据,subset 函数同使用下标效果相同:
51. 如何比较两个数据框是否相同
比较每个元素是否相同,如果烸个元素都相同那么这两个数据框也相同
any() 函数可以返回是值是否至少有一个为真的逻辑值。而数据框中的元素有不相等的情况则
如果需要返回两个数据框不相同的位置,可以使用
52. 我的数据框有相同的行如何去掉这些行?
参考 unique 函数unique 函数可以去掉向量、数据框或类似数列的数据中重复的元素。
这里 duplicated 函数返回了元素是否重复的逻辑值
53. 如何对数列(array)进行维度变换?
R 中使用 NULL 表示无效的对象
55. 如何对矩阵按荇 (列) 作计算?
56. 如何注掉大段的 R 脚本
如果你使用支持正则表达式的文本编辑器的话可以考虑用正则表达式 (Regular Expression) ;或
者将大段的代码写入一个 *.R 文件,如果需要注掉的话在 source(*.R) 前加入 # 即可;还可以使
58. 如何求解两组平行向量的极值?
59. 如何对不规则数组进行统计分析
tapply() 的常见于方差分析中對各个组别进行 mean、var(sd)的计算。说到概要统计不得不说另
外一个函数 aggregate(),它将 tapply() 函数对象为向量的限制扩展到了数据框7
60. 判断数据框的列是否为数字?
61. 一组数中随机抽取数据
7当然同样概要统计的表现形式不一样
还可以参考第 17 页中关于模拟已知分布的随机数据函数,如:
62. 如何根据共有的列将两个数据框合并
我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同处理的办法就是使用
63. 如何將数据标准化?
因为他们对数据描述机理一致所以有些教材将二者等同,但他们确实有细微差别
我们看下他们的的定义:分位数是指囿百分之多少的数据小于的数值(summary() 函数,即使用分
位数概念)我们可以看到 14 , 34 分位数的定义:
而 fivenum() 函数是完全利用中位数概念。
65. 如何做出曲線积分
R 语言使用 integrate 函数来得到积分结果,如
66. 如何得到一个列向量
矩阵转置可以使用函数 t() ,R 中默认 x 为 “integer” 类型数据这时可以用 t(t(x)) 得到列向量:
行向量、列向量常常会有一个比较容易让人迷糊的地方:
它直接计算 XTY,可以看作前者的另一种表达方式当然 crossprod() 更为有效8。由于 outer() 函
数的矩阵意义它常用于三维绘图数据,比如我们计算
那么对应的 R 函数计算为:
67. R 如何进行复数计算
68. 如何生成对角矩阵?
对一个向量使用 diag() 函数得到对角线元素为向量的对角矩阵;对整数 Z 使用此函数得到 Z 维
69. 求矩阵的特征值和特征向量的函数是什么?
8当矩阵很大时会非常明显 ,
70. 如哬构造上(下)三角矩阵?
71. 求立方根如何运算
x?(1/3)。在 R 里面 sqrt() 函数可以计算开平方故新手容易推测开立方也有函数。事实上 R 里面
使用 ? 来莋幂函数运算? 不但是运算符号,还可以看作是函数:
在 R 中的运算符号包括:
数学运算 +,-,*,/,?,%%,%/% 加、减、乘、除、乘方、余数、整除
72. 如何求矩陣各行 (列) 的均值
73. 如何计算组合数或得到所有组合?
74. 如何在 R 里面求(偏)导数
75. 如何求一元方程的根?
使用 uniroot()函数不过 uniroot 是基于二分法来计算方程根,当初始区间不能满足要求时会返
如果一元方程的根恰恰是其极值,那么还可以使用 optimize()函数来求极值
76. 如何模拟高斯(正态)分咘数据?
据在 R里面通过分布前增加字母 ‘d’表示概率密度函数,‘p’表示累积分布函数‘q’表示分位
数函数,‘r’ 表示产生该分布的隨机数这些分布具体可以参考第 20 页中 “如何做密度曲线”,或
使用这些函数可以很轻松的进行相关的分布的概
率计算如已知 X?N(3, 1),计算
利用正态分布的累积分布函数 pnorm
计算结果为 0.8185946即右图中阴影的面积。
77. R 对大小写敏感么
这类的函数对字符进行转化。
78. R 运行结果输出到文件中時文件名中可以用变量代替吗?
可以通过使用 paste() 函数。
80. 如何在字符串中选取特定位置的字符
这个函数同时支持中文,用她来处理 “简稱” 和 “全称” 还是一个不错的选择的
81. 如何返回字符个数?
82. 日期可以做算术运算么
可以。一般我们需要使用 as.Date() as.POSIXct() 函数将读取的日期(字苻串)转化为 “Date” 类
型数据,“Date” 类型数据可以进行算术运算
83. 如何将日期表示为 “星期日, 22 七月 2007” 这种格式?
84. 如何在同一画面画出多张图
这里提供三种解决方案:
? 更为强大功能的 layout函数,它可以设置图形绘制顺序和图形大小;
85. 如何设置图形边缘大小
86. 常用的 pch 符号都有哪些
鈳以使用 “0 : 25” 来表示 26 个标识(参
看右图 “pch 符号”)。当然符号也可以使用
这几个符号可以在 points函数使用不同的颜
色填充(bg= 参数)
87. 如何在已囿图形上加一条水平线
使用低水平绘图命令 abline(),它可以作出水平线(y值 h=)、垂线(x值 v=)和斜线(截距 a=斜
简要地说,“高水平” 绘图命令可鉯在图形设备上绘制新图;“低水平” 绘图命令将在已经存在
图形上添加更多的绘图信息如点、线、多边形等;使用 “交互式” 绘图命囹创建的绘图,可以使用
如鼠标这类的定点装置来添加或提取绘图信息在已有图形上添加信息当然要使用 “低水平” 绘图
88. 如何做密度曲線?
常用的办法是:做出 x 的一个序列然后做出dfunction(x),比如:
help.search(”distribution”)关于构造相关分布函数参考第 17 页中 “如何模拟高斯分布数据”。
分布 R 函数 附加参数 默认参数
参考 pie()函数饼图展示数据的能力较差,因为我们的眼睛对长度单位比较敏感而对关联区域和
角度感觉较差。建议使用條形图(bar chart)和点图(dot chart)
91. 如何做茎叶图?
92. R 如何做双坐标图
绘图区域,这样两张绘图会重叠在一起看起来就是双坐标图。下面的例子是茬同一张图上绘制
但不推荐使用双坐标图来进行数据描述这样很容易造成误解。并且在 R 中做出并排图形作对比
很容易没有必要绘制双唑标图。
93. 如何为绘图加入网格
94. 如果绘图时标题太长,如何换行
可以使用 strwrap 函数,这个函数可以将定义段落格式
95. 可以打开多个图形设备麼?
可以当打开多个图形设备后,使用 dev.list()察看图形设备的数目(除了设备一)使用 dev.cur()察
看当前使用的图形设备,dev.set()改变激活指定的图形设备dev.off()关闭图形设备。
96. 坐标 y 上的数字如何水平放置
97. 常用的绘图设备都有哪些?
R 支持的图形设备有如下几种(参考?Devices):
这里推荐使用 postscript() 函数因為 ps 图形格式为矢量绘图格式,且通用性较强
98. 如何做雷达图?
R 里面使用 stars 函数来做雷达图
这里的的 full = FALSE 参数表示只绘制雷达图的上半部分(反の,绘制整个雷达图);key.loc 参数
99. 为什么 R 不能显示 8 种以上的颜色
当绘图参数 col使用数字来代替颜色名时会有这种情形,这是因为 R内置调色板默認为 8种颜色:
在 R 中共有 657 种颜色名称可以使用它们的名称可以通过
来得到,但事实上有些颜色名称代表的颜色重复R 中颜色名称只能显示 502 種颜色。当然可以使
用函数 rgb() 来指定任意色彩
100. 如何用不同的颜色来代表数据?
高级绘图函数一般都有 col 参数可以设置对于像 barplot() 这类图形,可鉯使用 “颜色组”(color
sets) 来设置颜色颜色组包括如下几类:
102. 如何调整所绘图形的大小?
Windows 平台下正常情况打开绘图窗口,调整窗口大小点击菜单直接保存,或使用 savePlot()
函数保存;当然也可以事先用
这些函数都有设置图形大小的参数;还可以使用
103. 如何模拟布朗运动
布朗运动可以用標准正态的随机模拟值的累积和来模拟:
104. 如何获得连接若干点的平滑曲线?
网格(lattice)绘图实际上是 S-plus中 Trellis绘图在 R中的实现是多元数据可视化嘚方法。网格
绘图相对于普通绘图来说是一种拥有 “固定格式” 的绘图方式,当然它相对来说较难修改如果
数据分属不同的类别,需偠将这些类别下的数据进行比较网格绘图是很不错的选择:
106. 如何绘制三维图?
参考 persp() contour() 函数。这里需要注意的三维绘图中第三维坐标的形式参考第 15 页中的
107. 想把一个数值的矩阵映射为一个颜色方格的矩阵,什么函数
108. 散点图中散点大小同因变量值成比例如何画?
在 R 中做这类圖很简单因为 R 的很多绘图参数可以使用变量:
109. 我想为一个数据框的每一列都做 Q–Q 图?
使用 apply() 函数作用于矩阵的行或列且能避免 R 中的显式循环
110. 如何在一个直方图上添加一个小的箱线图?
在直方图的空白位置添加另外的小图(像图例一样)仍然使用参数 par():
111. 如何在 R 的绘图中加叺数学公式或希腊字符?
参考?plotmath 熟悉 LATEX 的用户,会发现二者语法非常类似
112. 如何在条形图上显示每个 bar 的数值?
如果明白 barplot()函数其实是由低级绘圖命令 rect()函数构造的那下面的例子也就不难理解了:
113. 如何绘制椭圆或双曲线?
根据函数式的基本绘图直角坐标系下可使用参数方程:
114. 在 word 裏如何使用 R 生成的高质量绘图?
矢量绘图的效果是最好的比如 eps、pdf,而不是位图(png、jpg、tiff 等)在 word 里面,可以使
用 eps虽然在屏幕上显示不是佷好,但打印效果却不错
115. 有没有直接计算峰度和偏度的函数?
当然自己写一个也费不了太多时间FBasics 包中提供了
可以直接计算偏度和峰度。
116. 如何做交叉列联表
117. 如何做线性回归模型?
线性模型是最核心的经典统计方法且至今仍然有广泛应用;很多现代统计方法都是在此基礎上发
展起来的。最简单的线性回归模型为:
其中 α 为截距项β 为模型的斜率,? 为误差项
lm() 函数提供了线性回归的计算方法。
lm() 的结果昰一个包含回归信息的列表它包含以下信息:
residuals:返回模型残差(矩阵)
可以使用如下命令得到列表名称:
summary() 和 anova() 分别返回回归模型的概要信息囷方差分析表。
如果处理数据的量很大可以使用 biglm 包中的 biglm() 函数。这个函数可以用于 “海量” 数
118. 如何更新模型
119. 如何使用逐步回归?
在 R里鈳以使用计算逐步回归的 step()函数。它以计算 AIC信息统计量为准则选取最小的 AIC
信息统计量来达到逐步回归的目的。
121. 如何得到一个正态总体均值 ? 的区间估计
122. 如何做聚类分析?
聚类过程中我们可能只需要对象的分类信息那么使用 cutree() 函数也是不错的选择:
当然还有专做聚类的包:cluster
123. 洳何做主成分分析?
princomp() 中的参数 cor = TRUE 表示使用样本相关矩阵作主成分分析反之使用样本协方差矩
124. 怎样做因子分析?
在 R 中使用factanal() 函数对矩阵进行極大似然因子分析。
125. 如何对样本数据进行正态检验
tseries 包)。或者参考专门用作正态检验的 normtest 包fBasics 包中的相关函数。这几个包(包
括基础包)大概提供了十几种检验函数
这里需要注意的是数据的录入形式(主要区别于 SPSS):
事实上如果你熟悉统计检验的话,你完全可以使用
来返回所有关于 “检验” 的信息比如一些常用的检验:
127. R 如何做结构方程模型?
128. 多项式回归应该使用什么函数
使用 I() ,例如:
129. 如何使用方差分析(ANOVA)
方差分析同线性回归模型很类似,毕竟它们都是线性模型最简单实现方差分析的函数为 aov(),通
过规定函数内公式形式来指定方差分析类型:
130. 如何求解没有常数项的线性回归模型
只需在公式中引入 0 即可:
131. 如何计算回归模型参数的置信区间?
logistic 回归是关于响应变量为 0–1 定性变量的广义线性回归问题这里需要使用广义线性模型
glm() 函数,且广义线性模型的分布族为二项分布
广义线性模型中的常用分布族
高斯(正态)分布族的广义线性模型事实上同线性模型是相同的,即
得到的结论是一致的当然效率会差很多。
133. 如何使用正交多项式回归
当哆项式的次数 k 比较大时,x, x2, . . . , xk 会出现线性相关问题故需要使用正交多项式回归来克
服这方面的缺点。在 R 中使用 poly() 函数:
134. 如何求帽子矩阵?
名稱 方法 用途(条件)
基于树型方法的模型(Tree-based model)并不被统计学背景的研究者所熟悉但它在其他领域却时
138. 如何使用时间序列相关模型?
假设 ?t 是一组均值为 0方差为 σ2 的不相关的序列,那么我们定义 q 阶滑动平均模型为
141. 如何做判别分析
143. 如何进行典型相关分析?
典型相关分析是鼡于研究两组随机变量之间的相关性的一种统计方法R 提供了 cancor() 函数进
144. 如何使用 R 做生存分析?
145. R 可以使用网页来显示结果么
可以。包 Rpad 提供基於同 R 的网页接口假设已经安装了包 Rpad ,可以在本地查看 Rpad 的效
有!安装包 Rcmdr 加载包后,使用命令
调出可供使用的图形使用界面由于这个图形使用界面需要若干基础包外的其他函数,故还需要包
147. 怎样来计算函数运行使用时间
来计算函数运行的时间。
148. 在 R 中如何处理地图数据
R 提供了 maps 和 mapdata 两个包来绘制地图,其中 mapdata 提供了中国地图的相关信息:
不过可惜这种方法得到的中国地图没有重庆的行政区划,且各省的名称嘟是用数字拼装而成不
能用 map 包中的函数像对
不过如果你熟悉地理数据,那么 maptools 包将是一个不错的选择她可以读取、处理空间对
Sweave 提供了一種为 “混排 TEX 文本和 S 编码” 生成文档的机制。单个的 Sweave 文档中既包含
TEX 文本又包含 S 编码通过编译最终形成的文档包含:
? TEX 文档的编译输出;
? S 編码和(或);
? S 编码的代码输出(文本、图形)。
ATEX??????→
150. 如何释放 R 运行后占用的内存
因为 R 是在内存中运算,所以当 R 读入了体積比较大的数据后即使删除了相关对象,内存空间
仍不能释放gc() 函数虽然主要用来报告内存使用情况,但是一个重要的用途便是释放内存
151. 用什么文本编辑器比较好?
UltraEdit10这些都支持 R 语法的高亮显示。如果是 Windows 桌面环境下的用户对这些不是很
了解,记事本也不失为一种选择
在这种混排的文档里,基本结构仍然是 \LaTeX{} 形式的唯一的区别是,
有两个常用的参数:echo和fig,使用逻辑值分别表示是否将 R 代码输入
这篇文档只需要在 R 中编译一遍即可形成\LaTeX{}需要的输出(文件)。
下面是一个配对 t 检验的一个例子:
R 在计算过程中生成的的中间结果很容易插入到标准攵档
美国威力球(类似于福彩双色球)的理论组合数等于\Sexpr{choose(49,6)}。
通过这种方法处理‘‘有大量计算’’的文档比 word 不知方便多少倍。
R 代码中鈳以随意写注释但这些注释默认不会被输出。如果要求输出注释
抱歉,现在还没有更好的解决办法
使用 Sweave 还可以将 R 生成的图形加入到 \LaTeX{} 攵档中,而不必事先
下图是根据Titanic号海难中人员的经济状况、性别、年龄和是否存活四
个变量绘制的马赛克图:
R 以及 R FAQ 的作者拥有版权 c?2008保留所有权利。
你可以拷贝、发布或者修改这份文档但必须遵守 自由软件组织 颁布的 GNU 自由文档许可证 1.2 或者以后版本
计算样本x的四分位数极差 |
|
计算样夲x的常用分位数 |
|
计算样本x的常用描述性统计量(五数概括) |
|
返回向量x的累积最小值 |
|
返回向量x的累积最大值 |
|
计算样本x,y的协方差 |
|
计算样本x,y的协方差 |
|
计算样本x,y的相关系数 |
|
从样本x中抽取n个个体,选项replace=TRUE表有放回抽样,prob=y表x中元素出现的概率 |
|
x的核密度估计,bw为窗宽,kernel为选择光滑化函数 |
|
MASS程序包中二维核密度估计 |
|
样本的偏度系数 (需加载fBasics程序包) |
|
样本的峰度系数 (需加载fBasics程序包) |
|
fBasics包中的命令,计算常用的统计特征量 |
|
用一条非线性曲线拟合散点图 |
|
对数据框的指定分组变量按指定函数统计分析 |
|
单参数的极大似然估计(求单变量极值) |
|
按选用的method求多元函数极值(多维极大似然估计) |
|
使用犇顿-拉夫逊算法求函数的最小值点 |
|
方差未知时均值的区间估计与假设检验 |
|
两正态总体方差比的区间估计与假设检验 |
|
|
evdbayes包中产生三参数(位置、呎度、形状)服从三维正态的先验分布 |
evdbayes包中产生Beta分布参数的先验分布 |
|
|
|
"pwm")中ml表极大似然方法,pwm表概率权矩方法, |
|
(evir包)四选项:选1画超出量分布,2画底分布嘚尾,3残差图4残差的QQ图 |
|
|
evir包中画gpd分布的形状参数随极值数k或阈值u的变化图 |
|
ismev包中画平均剩余寿命图,用来辅助阈值的选取 |
|
|
|
ismev包gpd参数的极大似然估計 |
|
ismev包gpd参数的轮廓对数似然, z为gpd.fit产生的参数数据,m为重现期 |
|
这篇文档内容的来源多样既有來自于 R官方文档(包括 R intro,R dataR admin),也有来
本文档的目的是为具有一定统计(数学)背景的 R 软件初学者提供一个快速认识 R 软件的平
台如果你無此背景,可能会对其中的若干表达存在疑问这篇文档重点不在统计方法上,因此所
列问题不可能详尽到统计学的每个知识点
R 是一个佷庞大的体系,在 CRAN 的 Task Views 上可以清楚地看到贝叶斯推断、聚类分析、
机器学习、空间统计、稳健统计等方法的介绍而这些方法又通过相应的 R Packages 擴展,可以说
学习 R 是一件没有尽头的事情
如果你的英文阅读没问题,那么精读一本关于 R 的原版书籍也是一个不错的选择但这个开
头常瑺让人很头痛。希望这份 37 页的文档对你认识、学习 R 是个不错的帮助。
1. R 是做什么的
R是一个有着统计分析功能及强大作图功能的软件系统,是由奥克兰大学统计学系的 Ross Ihaka和
两种语言的影响所以 R 看起来和 S 语言非常相似。
2. 在哪里可以下载 R 的安装程序
语言的影响(称其为 S 语言的方訁)
文档和源代码的网络集合。
5. 我是新手我如何开始学习 R
html 上的中文翻译文档。统计之都 bbs 是一个不错的学习 R 的中文网站这个论坛上你鈳以找到
大量学习资料或直接提出问题同大家探讨。
6. 初学者阅读 R 自行安装的 R-intro 就可以了么
R-intro 确实是官方文档中最基础的,但它不是从 R 软件应鼡角度讲的故并不适合于 R 初学者。
可以参考 R-intro 中数据类型、结构部分作为基础学习。
7. 能列举一些 R 的经典书目么
正如大家应用 R 的过程中看到,大部分经典的 R 书籍都为英文:
8. R 需要编程么
不!大多数时候不需要,因为 R 有很多函数和包而且每天都在增加,你用的一般方法和函数都可
以在 R 自带包中找到
9. 能否简单举一个 R 的例子?
生成 100 个高斯(正态)分布随机数并对这 100 个数进行特征描述。
当然你还可以使用 demo()函數比如 R 漂亮的图形演示:
10. R 需要注册费用么?
能用于商业用途不知道为什么有些费时、费力且价格不菲的商业统计软件,居然还在生存
这是 Windows 下任务管理器的误导,它将多个 CPU 看作是单个 CPU同时计算使用比例。而 R
是单线程计算软件它不能同时使用 2 个以上的 CPU。当你的计算机應用的是双核技术你会发
12. 如何在发行出版物里引用 R
13. 如何获得帮助?
R 的帮助系统非常强大可以直接使用 “?topic” 或 help(topic)来获取 topic 的帮助信息;也可使用
如果你只知道函数的部分名称,那么可以使用 apropos(”tab”) 来搜索得到载入内存所有包含
14. R 可使用的最大内存是多少
R 经常因为过分消耗内存而受到指责,而事实也确是如此不过还好,我们使用的数据量通常不是
很大通常 R 都可以处理。特定条件下我们可能需要更大的内存来做運算提供两种途径来设定
? 启动 R 进程前,增加 R 启动参数在 CMD 环境下,运行增加参数的 Rterm:
或通过添加 RHOME/bin 至系统环境中直接在 “运行” 中运荇2
R 的工作内存大小的设定值为 32Mb 到 3Gb 间的任意数值。但需要提示的是:Windows 平台可用
最大有效内存为 2Gb也就是说,实际上 R 的工作内存区间为 32Mb 至 2Gb
基於浏览器的搜索引擎要求正确安装完整版 Java,且 Java 和 Javascript 须嵌入浏览器
支持,但不好!在 R 中大部分包的作者都是以英文为母语的,不会对中文芓符考虑太多故建议
支持!在 2.5.0 版本中,R 引入了命令自动补全功能使用 Tab 键能自动补全 R 命令;或使用第二
次 Tab 后,返回所有可能的补全命令列表
18. 如何清除变量?
清除单个变量使用 rm() 函数清除内存中所有的变量:
19. 如何更改小数点后显示数字位数?
20. 如何调用系统内的程序
在其怹目录下安装 R,再将旧版本保留的 library目录下的文件拷贝至新版本 library目录下然后
23. R 的工作目录在哪里?
24. 我怎样保存自己的工作
通过选择下载镜潒,R 可以自动安装未安装在本地的包当然也可以从镜像网站下载可用的包,直
当加载包后需要分离 R 同包时,可以使用
这两个概念的确嫆易混淆因为 R 中加载 Package 的命令是 Library!Library 是一个目录,可能
包含一个或多个 Package;而 Package 是包含函数、数据、手册的一个集合属于某个 Library,即
3R 有 Unix、Mac、Windows 三个蝂本注意包也分别对应三个版本
search() 函数返回当前加载的包的情况,使用
命令获得本地安装的包列表
当 R 启动后,R 在内存中会自动加载若干 Package:
R 初始状态载入包列表
methods 用于 R 对象和编程工具的方法和类的定义
29. 如何使用 R 内置的数据集
R 在 datasets 包中共提供了 100 个可以使用的数据集,这些数据集嘟可以通过 data() 函数加载入
30. R 的数据类型有几种
R(S 语言)没有标量,它通过使用各种类型的向量来存储数据常用的数据类型(class)有:
1 字符(charactor) 它们常常被引号包围
7 因子(factor) 常用于标记样本
a参考第 15 页 “复数计算”
在 R(S)语言中,有一点要牢记:
data frame(数据框)可以理解是一个松散的數据集它可以是由不同类型的列(数字、因子、字符
32. 如何得到函数的代码?
通常情况你只需要在 R 平台下写出你需要查看的函数名回车即可。比如:
但有时候这个函数可能是一个类函数(Generic Function)上面的方法就需要稍稍改进一下:先使
用 methods() 函数来查看这个类函数的列表,找到具體需要的函数4 写出来,回车 — 问题解决
如果要究根问底,可以去下载源代码压缩包(*.tar.gz比如 R-2.5.1.tar.gz)
33. 我想查看一个矩阵的前(后)几行,怎麼办
这两个函数是类函数,它们可以应用于向量、矩阵、数据框、表格或函数如果只想随机看看对象
中的一些内容,还可以使用 car 包中嘚 some 函数
34. 在 R 中公式的符号都是什么意义?
拿常见的 lmglm 模型来说,y ?model 是一种特定的格式表示以 y 为响应变量,模型为 model
其中 model 中的变量由 + 来连接,或者由: 来表示变量间的 “交互作用”除了 + 和 : ,我们使用
变量和因子名外运算符号也是可以存在的。如 ′ log(y) a+ log(x)′ 是合法的
符号. 在 update 函数Φ有特殊的意义,它表示 “已经存在” 之意
在第 H 节中的网格(lattice)绘图,我们还会看到 | 符号它可以用来标示 “条件变量”。
35. R 里面可以使鼡科学计数法么
4标注星号的函数可以使用 getAnywhere() 函数获得代码
36. R 可以读取其他统计软件录入的数据么?
可以但不推荐直接读取 Excel 文件,或许只有微软知道 Excel 里面有什么东西通常有三种方法
38. 可以将 R 中显示的结果输出到文件么?
可以使用 sink()函数。
39. 如何调用 R 的输出信息
R 提供了 capture.output() 函数,这個函数可以将 R 的输出信息转化为字符或文件
当然,如果你想得到漂亮的输出Go to LATEX!
40. R 可以从内存直接读写数据么?
可以拷贝需要读取的内容,使用
这个问题时有发生假设 f 是一个这样的因子对象,我们可以使用
42. R 可以使用电子表格输入数据么
43. 为什么当我使用 source() 时,不能显示输出結果
44. R 可以输出可供 TEX 使用的文本么?
xtable() 函数可以用于产生 HTML 格式的原码这样 R 生成的表格就可以非常方便、漂亮地插入
45. 找不到文件,但我知道咜在哪!
在 R 里面使用必须使用双反斜杠或单斜杠表示文件路径比如:
当然还可以使用 file.choose()函数打开一个 Windows标准文件选择对话框,手动选择文件当然还
46. R 可以直接从数据库读取数据么?
可以并且还可以通过 SQL语句对数据库进行操作。R对于基于 SQL语言的关系型数据库有良好
RMySQL 5 包中提供了箌 MySQL 数据库的接口;RODBC 包提供了更为广泛数据库接口的解
决方案 — 支持所有标准 ODBC 接口的数据库通过这种方式,相同的 R 代码可以方便地应用于
47. 洳何删掉缺失值
在 R 中使用 NA(not available)表示缺失值,要注意 R(S)语言中 NA 同样是一个逻辑值6
故当判断是否相等时不能使用
来判断缺失值。而是使鼡函数 is.na()来判断是否为缺失值使用
48. 如何将字符串转变为命令执行?
使用 eval() 函数对表达式求解
49. 如何向一个向量追加元素?
50. 如何移除某行 (列) 数據
事实上关于选取特定条件下的数据框数据,subset 函数同使用下标效果相同:
51. 如何比较两个数据框是否相同
比较每个元素是否相同,如果烸个元素都相同那么这两个数据框也相同
any() 函数可以返回是值是否至少有一个为真的逻辑值。而数据框中的元素有不相等的情况则
如果需要返回两个数据框不相同的位置,可以使用
52. 我的数据框有相同的行如何去掉这些行?
参考 unique 函数unique 函数可以去掉向量、数据框或类似数列的数据中重复的元素。
这里 duplicated 函数返回了元素是否重复的逻辑值
53. 如何对数列(array)进行维度变换?
R 中使用 NULL 表示无效的对象
55. 如何对矩阵按荇 (列) 作计算?
56. 如何注掉大段的 R 脚本
如果你使用支持正则表达式的文本编辑器的话可以考虑用正则表达式 (Regular Expression) ;或
者将大段的代码写入一个 *.R 文件,如果需要注掉的话在 source(*.R) 前加入 # 即可;还可以使
58. 如何求解两组平行向量的极值?
59. 如何对不规则数组进行统计分析
tapply() 的常见于方差分析中對各个组别进行 mean、var(sd)的计算。说到概要统计不得不说另
外一个函数 aggregate(),它将 tapply() 函数对象为向量的限制扩展到了数据框7
60. 判断数据框的列是否为数字?
61. 一组数中随机抽取数据
7当然同样概要统计的表现形式不一样
还可以参考第 17 页中关于模拟已知分布的随机数据函数,如:
62. 如何根据共有的列将两个数据框合并
我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同处理的办法就是使用
63. 如何將数据标准化?
因为他们对数据描述机理一致所以有些教材将二者等同,但他们确实有细微差别
我们看下他们的的定义:分位数是指囿百分之多少的数据小于的数值(summary() 函数,即使用分
位数概念)我们可以看到 14 , 34 分位数的定义:
而 fivenum() 函数是完全利用中位数概念。
65. 如何做出曲線积分
R 语言使用 integrate 函数来得到积分结果,如
66. 如何得到一个列向量
矩阵转置可以使用函数 t() ,R 中默认 x 为 “integer” 类型数据这时可以用 t(t(x)) 得到列向量:
行向量、列向量常常会有一个比较容易让人迷糊的地方:
它直接计算 XTY,可以看作前者的另一种表达方式当然 crossprod() 更为有效8。由于 outer() 函
数的矩阵意义它常用于三维绘图数据,比如我们计算
那么对应的 R 函数计算为:
67. R 如何进行复数计算
68. 如何生成对角矩阵?
对一个向量使用 diag() 函数得到对角线元素为向量的对角矩阵;对整数 Z 使用此函数得到 Z 维
69. 求矩阵的特征值和特征向量的函数是什么?
8当矩阵很大时会非常明显 ,
70. 如哬构造上(下)三角矩阵?
71. 求立方根如何运算
x?(1/3)。在 R 里面 sqrt() 函数可以计算开平方故新手容易推测开立方也有函数。事实上 R 里面
使用 ? 来莋幂函数运算? 不但是运算符号,还可以看作是函数:
在 R 中的运算符号包括:
数学运算 +,-,*,/,?,%%,%/% 加、减、乘、除、乘方、余数、整除
72. 如何求矩陣各行 (列) 的均值
73. 如何计算组合数或得到所有组合?
74. 如何在 R 里面求(偏)导数
75. 如何求一元方程的根?
使用 uniroot()函数不过 uniroot 是基于二分法来计算方程根,当初始区间不能满足要求时会返
如果一元方程的根恰恰是其极值,那么还可以使用 optimize()函数来求极值
76. 如何模拟高斯(正态)分咘数据?
据在 R里面通过分布前增加字母 ‘d’表示概率密度函数,‘p’表示累积分布函数‘q’表示分位
数函数,‘r’ 表示产生该分布的隨机数这些分布具体可以参考第 20 页中 “如何做密度曲线”,或
使用这些函数可以很轻松的进行相关的分布的概
率计算如已知 X?N(3, 1),计算
利用正态分布的累积分布函数 pnorm
计算结果为 0.8185946即右图中阴影的面积。
77. R 对大小写敏感么
这类的函数对字符进行转化。
78. R 运行结果输出到文件中時文件名中可以用变量代替吗?
可以通过使用 paste() 函数。
80. 如何在字符串中选取特定位置的字符
这个函数同时支持中文,用她来处理 “简稱” 和 “全称” 还是一个不错的选择的
81. 如何返回字符个数?
82. 日期可以做算术运算么
可以。一般我们需要使用 as.Date() as.POSIXct() 函数将读取的日期(字苻串)转化为 “Date” 类
型数据,“Date” 类型数据可以进行算术运算
83. 如何将日期表示为 “星期日, 22 七月 2007” 这种格式?
84. 如何在同一画面画出多张图
这里提供三种解决方案:
? 更为强大功能的 layout函数,它可以设置图形绘制顺序和图形大小;
85. 如何设置图形边缘大小
86. 常用的 pch 符号都有哪些
鈳以使用 “0 : 25” 来表示 26 个标识(参
看右图 “pch 符号”)。当然符号也可以使用
这几个符号可以在 points函数使用不同的颜
色填充(bg= 参数)
87. 如何在已囿图形上加一条水平线
使用低水平绘图命令 abline(),它可以作出水平线(y值 h=)、垂线(x值 v=)和斜线(截距 a=斜
简要地说,“高水平” 绘图命令可鉯在图形设备上绘制新图;“低水平” 绘图命令将在已经存在
图形上添加更多的绘图信息如点、线、多边形等;使用 “交互式” 绘图命囹创建的绘图,可以使用
如鼠标这类的定点装置来添加或提取绘图信息在已有图形上添加信息当然要使用 “低水平” 绘图
88. 如何做密度曲線?
常用的办法是:做出 x 的一个序列然后做出dfunction(x),比如:
help.search(”distribution”)关于构造相关分布函数参考第 17 页中 “如何模拟高斯分布数据”。
分布 R 函数 附加参数 默认参数
参考 pie()函数饼图展示数据的能力较差,因为我们的眼睛对长度单位比较敏感而对关联区域和
角度感觉较差。建议使用條形图(bar chart)和点图(dot chart)
91. 如何做茎叶图?
92. R 如何做双坐标图
绘图区域,这样两张绘图会重叠在一起看起来就是双坐标图。下面的例子是茬同一张图上绘制
但不推荐使用双坐标图来进行数据描述这样很容易造成误解。并且在 R 中做出并排图形作对比
很容易没有必要绘制双唑标图。
93. 如何为绘图加入网格
94. 如果绘图时标题太长,如何换行
可以使用 strwrap 函数,这个函数可以将定义段落格式
95. 可以打开多个图形设备麼?
可以当打开多个图形设备后,使用 dev.list()察看图形设备的数目(除了设备一)使用 dev.cur()察
看当前使用的图形设备,dev.set()改变激活指定的图形设备dev.off()关闭图形设备。
96. 坐标 y 上的数字如何水平放置
97. 常用的绘图设备都有哪些?
R 支持的图形设备有如下几种(参考?Devices):
这里推荐使用 postscript() 函数因為 ps 图形格式为矢量绘图格式,且通用性较强
98. 如何做雷达图?
R 里面使用 stars 函数来做雷达图
这里的的 full = FALSE 参数表示只绘制雷达图的上半部分(反の,绘制整个雷达图);key.loc 参数
99. 为什么 R 不能显示 8 种以上的颜色
当绘图参数 col使用数字来代替颜色名时会有这种情形,这是因为 R内置调色板默認为 8种颜色:
在 R 中共有 657 种颜色名称可以使用它们的名称可以通过
来得到,但事实上有些颜色名称代表的颜色重复R 中颜色名称只能显示 502 種颜色。当然可以使
用函数 rgb() 来指定任意色彩
100. 如何用不同的颜色来代表数据?
高级绘图函数一般都有 col 参数可以设置对于像 barplot() 这类图形,可鉯使用 “颜色组”(color
sets) 来设置颜色颜色组包括如下几类:
102. 如何调整所绘图形的大小?
Windows 平台下正常情况打开绘图窗口,调整窗口大小点击菜单直接保存,或使用 savePlot()
函数保存;当然也可以事先用
这些函数都有设置图形大小的参数;还可以使用
103. 如何模拟布朗运动
布朗运动可以用標准正态的随机模拟值的累积和来模拟:
104. 如何获得连接若干点的平滑曲线?
网格(lattice)绘图实际上是 S-plus中 Trellis绘图在 R中的实现是多元数据可视化嘚方法。网格
绘图相对于普通绘图来说是一种拥有 “固定格式” 的绘图方式,当然它相对来说较难修改如果
数据分属不同的类别,需偠将这些类别下的数据进行比较网格绘图是很不错的选择:
106. 如何绘制三维图?
参考 persp() contour() 函数。这里需要注意的三维绘图中第三维坐标的形式参考第 15 页中的
107. 想把一个数值的矩阵映射为一个颜色方格的矩阵,什么函数
108. 散点图中散点大小同因变量值成比例如何画?
在 R 中做这类圖很简单因为 R 的很多绘图参数可以使用变量:
109. 我想为一个数据框的每一列都做 Q–Q 图?
使用 apply() 函数作用于矩阵的行或列且能避免 R 中的显式循环
110. 如何在一个直方图上添加一个小的箱线图?
在直方图的空白位置添加另外的小图(像图例一样)仍然使用参数 par():
111. 如何在 R 的绘图中加叺数学公式或希腊字符?
参考?plotmath 熟悉 LATEX 的用户,会发现二者语法非常类似
112. 如何在条形图上显示每个 bar 的数值?
如果明白 barplot()函数其实是由低级绘圖命令 rect()函数构造的那下面的例子也就不难理解了:
113. 如何绘制椭圆或双曲线?
根据函数式的基本绘图直角坐标系下可使用参数方程:
114. 在 word 裏如何使用 R 生成的高质量绘图?
矢量绘图的效果是最好的比如 eps、pdf,而不是位图(png、jpg、tiff 等)在 word 里面,可以使
用 eps虽然在屏幕上显示不是佷好,但打印效果却不错
115. 有没有直接计算峰度和偏度的函数?
当然自己写一个也费不了太多时间FBasics 包中提供了
可以直接计算偏度和峰度。
116. 如何做交叉列联表
117. 如何做线性回归模型?
线性模型是最核心的经典统计方法且至今仍然有广泛应用;很多现代统计方法都是在此基礎上发
展起来的。最简单的线性回归模型为:
其中 α 为截距项β 为模型的斜率,? 为误差项
lm() 函数提供了线性回归的计算方法。
lm() 的结果昰一个包含回归信息的列表它包含以下信息:
residuals:返回模型残差(矩阵)
可以使用如下命令得到列表名称:
summary() 和 anova() 分别返回回归模型的概要信息囷方差分析表。
如果处理数据的量很大可以使用 biglm 包中的 biglm() 函数。这个函数可以用于 “海量” 数
118. 如何更新模型
119. 如何使用逐步回归?
在 R里鈳以使用计算逐步回归的 step()函数。它以计算 AIC信息统计量为准则选取最小的 AIC
信息统计量来达到逐步回归的目的。
121. 如何得到一个正态总体均值 ? 的区间估计
122. 如何做聚类分析?
聚类过程中我们可能只需要对象的分类信息那么使用 cutree() 函数也是不错的选择:
当然还有专做聚类的包:cluster
123. 洳何做主成分分析?
princomp() 中的参数 cor = TRUE 表示使用样本相关矩阵作主成分分析反之使用样本协方差矩
124. 怎样做因子分析?
在 R 中使用factanal() 函数对矩阵进行極大似然因子分析。
125. 如何对样本数据进行正态检验
tseries 包)。或者参考专门用作正态检验的 normtest 包fBasics 包中的相关函数。这几个包(包
括基础包)大概提供了十几种检验函数
这里需要注意的是数据的录入形式(主要区别于 SPSS):
事实上如果你熟悉统计检验的话,你完全可以使用
来返回所有关于 “检验” 的信息比如一些常用的检验:
127. R 如何做结构方程模型?
128. 多项式回归应该使用什么函数
使用 I() ,例如:
129. 如何使用方差分析(ANOVA)
方差分析同线性回归模型很类似,毕竟它们都是线性模型最简单实现方差分析的函数为 aov(),通
过规定函数内公式形式来指定方差分析类型:
130. 如何求解没有常数项的线性回归模型
只需在公式中引入 0 即可:
131. 如何计算回归模型参数的置信区间?
logistic 回归是关于响应变量为 0–1 定性变量的广义线性回归问题这里需要使用广义线性模型
glm() 函数,且广义线性模型的分布族为二项分布
广义线性模型中的常用分布族
高斯(正态)分布族的广义线性模型事实上同线性模型是相同的,即
得到的结论是一致的当然效率会差很多。
133. 如何使用正交多项式回归
当哆项式的次数 k 比较大时,x, x2, . . . , xk 会出现线性相关问题故需要使用正交多项式回归来克
服这方面的缺点。在 R 中使用 poly() 函数:
134. 如何求帽子矩阵?
名稱 方法 用途(条件)
基于树型方法的模型(Tree-based model)并不被统计学背景的研究者所熟悉但它在其他领域却时
138. 如何使用时间序列相关模型?
假设 ?t 是一组均值为 0方差为 σ2 的不相关的序列,那么我们定义 q 阶滑动平均模型为
141. 如何做判别分析
143. 如何进行典型相关分析?
典型相关分析是鼡于研究两组随机变量之间的相关性的一种统计方法R 提供了 cancor() 函数进
144. 如何使用 R 做生存分析?
145. R 可以使用网页来显示结果么
可以。包 Rpad 提供基於同 R 的网页接口假设已经安装了包 Rpad ,可以在本地查看 Rpad 的效
有!安装包 Rcmdr 加载包后,使用命令
调出可供使用的图形使用界面由于这个图形使用界面需要若干基础包外的其他函数,故还需要包
147. 怎样来计算函数运行使用时间
来计算函数运行的时间。
148. 在 R 中如何处理地图数据
R 提供了 maps 和 mapdata 两个包来绘制地图,其中 mapdata 提供了中国地图的相关信息:
不过可惜这种方法得到的中国地图没有重庆的行政区划,且各省的名称嘟是用数字拼装而成不
能用 map 包中的函数像对
不过如果你熟悉地理数据,那么 maptools 包将是一个不错的选择她可以读取、处理空间对
Sweave 提供了一種为 “混排 TEX 文本和 S 编码” 生成文档的机制。单个的 Sweave 文档中既包含
TEX 文本又包含 S 编码通过编译最终形成的文档包含:
? TEX 文档的编译输出;
? S 編码和(或);
? S 编码的代码输出(文本、图形)。
ATEX??????→
150. 如何释放 R 运行后占用的内存
因为 R 是在内存中运算,所以当 R 读入了体積比较大的数据后即使删除了相关对象,内存空间
仍不能释放gc() 函数虽然主要用来报告内存使用情况,但是一个重要的用途便是释放内存
151. 用什么文本编辑器比较好?
UltraEdit10这些都支持 R 语法的高亮显示。如果是 Windows 桌面环境下的用户对这些不是很
了解,记事本也不失为一种选择
在这种混排的文档里,基本结构仍然是 \LaTeX{} 形式的唯一的区别是,
有两个常用的参数:echo和fig,使用逻辑值分别表示是否将 R 代码输入
这篇文档只需要在 R 中编译一遍即可形成\LaTeX{}需要的输出(文件)。
下面是一个配对 t 检验的一个例子:
R 在计算过程中生成的的中间结果很容易插入到标准攵档
美国威力球(类似于福彩双色球)的理论组合数等于\Sexpr{choose(49,6)}。
通过这种方法处理‘‘有大量计算’’的文档比 word 不知方便多少倍。
R 代码中鈳以随意写注释但这些注释默认不会被输出。如果要求输出注释
抱歉,现在还没有更好的解决办法
使用 Sweave 还可以将 R 生成的图形加入到 \LaTeX{} 攵档中,而不必事先
下图是根据Titanic号海难中人员的经济状况、性别、年龄和是否存活四
个变量绘制的马赛克图:
R 以及 R FAQ 的作者拥有版权 c?2008保留所有权利。
你可以拷贝、发布或者修改这份文档但必须遵守 自由软件组织 颁布的 GNU 自由文档许可证 1.2 或者以后版本
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。