收藏 分销(赏)

R入门25招.doc

上传人:s4****5z 文档编号:8728275 上传时间:2025-02-27 格式:DOC 页数:98 大小:1.51MB
下载 相关 举报
R入门25招.doc_第1页
第1页 / 共98页
R入门25招.doc_第2页
第2页 / 共98页
点击查看更多>>
资源描述
R入门25招 关于作者 陈钢, 华大基因, 研究员 长沙土鳖,Linux系统初级管理员,Perl入门级程序员,R菜鸟,LaTeX爱好者,Python学习者,业余Web开发人员,生物信息学和系统生物学门外汉~ Blog 豆瓣 新浪微博 向文章付费 请作者吃饭 第1招:下载和安装 下载和安装R 问题: 要把R安装到自己的电脑上。 解决方案: Windows和OS X用户可以从CRAN(Comprehensive R Archive Network)上下载R。Linux和Unix用户则可以用各自的包管理工具安装R软件包。 Windows 1 在浏览器中打开http://www.r-project.org/。 2 点击“CRAN”。然后会看到按国家排序的镜像站点列表。 3 就近选择一个镜像站点。 4 点击“Download and Install R”下的“Windows”。 5 点击“base”。 6 点击下载最新版R(一个.exe文件)的链接。 7 下载完成后,双击.exe文件,按照提示安装。 OS X 8 在浏览器中打开http://www.r-project.org/。 9 点击“CRAN”。然后会看到按国家排序的镜像站点列表。 10 就近选择一个镜像站点。 11 点击“MacOS X”。 12 在“Files”中点击最新版R的.pkg文件,下载。 13 下载完成后,双击.okg文件,按照提示安装。 Linux或Unix 主要的Linux发行版都有安装R的包。下表中是是一些例子: 发行版 包名称 Ubuntu或Debian r-base Red Hat或Fedora R.i386 Suse R-base 用系统的包管理器下载并安装R的软件包。这通常都需要root密码或者是sudo权限,或者也可以要系统管理员来安装。 讨论 在Windows和OS X上安装R都是很简单的,因为相应的安装包都是预编译好的。只需要根据安装程序的提示一步步地安装即可。CRAN的网页上也提供了跟安装有关的资源,例如常见问题(FAQ)和针对某些特殊情况的提示(“如何在Windows Vista上安装R?”(“How to install R when using Windows Vista?”)),这些都挺有用的。 理论上来说,在Linux或Unix上有两种安装R的方法:安装某个发行版的软件包,或是自己编译源代码。在实际使用中,安装软件包是更好的选择。各个发行版所提供的软件包在安装和随后的升级等方面都更加方便。 在Ubuntu和Debian中,是用apt-get下载和安装R。需要用sudo命令获得必要的权限: 代码 1 <span class="pln">$sudoapt</span><span class="pun">-</span><span class="kwd">get</span><span class="pln">installr</span><span class="pun">-</span><span class="kwd">base</span> 在Red Hat和Fedora则是用yum: 代码 1 <span class="pln">$sudoyuminstallR</span><span class="pun">.</span><span class="pln">i386</span> 大部分的系统还提供了更加方便的图形化包管理器。 除了基础包,笔者还建议读者把文档包也装上。例如,在我的Ubuntu机器上,我安装了r-base-html(因为我喜欢阅读带超链接的文档)和r-doc-html两个包,这样就将R的用户手册安装到了本地: 代码 1 <span class="pln">$sudoapt</span><span class="pun">-</span><span class="kwd">get</span><span class="pln">installr</span><span class="pun">-</span><span class="kwd">base</span><span class="pun">-</span><span class="pln">html r</span><span class="pun">-</span><span class="pln">doc</span><span class="pun">-</span><span class="pln">html</span> 有些Linux的软件库中还有一些CRAN上的R软件包。我没用这些软件包,因为我更喜欢直接从CRAN上下载这些软件包的最新版。 在个别情况下,读者有可能需要自己从源代码编译R:有可能是在使用不被支持的Unix版本,或是在性能和配置方面有特殊的考量。Linux和Unix上的编译过程是非常标准化的。从CRAN镜像站点的首页上下载压缩包,压缩包的名字一般是R-2.12.1.tar.gz,只是其中的2.12.1会被最新的版本号代替。解压这个压缩包,然后根据其中的INSTALL文件的提示进行编译。 扩展阅读 R in a Nutshell一书中对R的下载和安装有更加详细的介绍,包括如何在Windows和OS X上编译R。但有关R的安装的最强秘笈还是CRAN上的R Installation and Administration,其中介绍了如何在各种各样的操作系统上编译和安装R。 这一招是关于如何安装基础包的。安装CRAN上的其他包则是用install.packages函数。 关于作者 陈钢, 华大基因, 研究员 长沙土鳖,Linux系统初级管理员,Perl入门级程序员,R菜鸟,LaTeX爱好者,Python学习者,业余Web开发人员,生物信息学和系统生物学门外汉~ Blog 豆瓣 新浪微博 向文章付费 请作者吃饭 相关文章 14 RSPerl:在Perl里面调用R 15 一份R培训的提纲 16 从R中调用Cytoscape绘制复杂网络 17 R中的公式:使用 18 [翻译]R入门25招 第9招:用列数据初始化数据框 第2招:获取函数的帮助 问题 要获得安装在自己电脑上的某个函数的帮助信息。 解决方案 用help显示函数的文档: 代码 1 <span class="pun">></span><span class="pln"> help</span><span class="pun">(</span><span class="pln">functionname</span><span class="pun">)</span> 用args了解该函数的参数: 代码 1 <span class="pun">></span><span class="pln"> args</span><span class="pun">(</span><span class="pln">functionname</span><span class="pun">)</span> 用example察看函数的使用例子: 代码 1 <span class="pun">></span><span class="pln"> example</span><span class="pun">(</span><span class="pln">functionname</span><span class="pun">)</span> 讨论 本书中出现了各种各样的函数。在有限的篇幅里不可能面面俱到地介绍各个R函数。笔者强烈建议读者自己阅读感兴趣的函数的帮助文件。帮助文件中所提供的信息是非常有用的。 如果想要了解mean函数,可以这样使用help函数: 代码 1 <span class="pun">></span><span class="pln"> help</span><span class="pun">(</span><span class="pln">mean</span><span class="pun">)</span> R会新开一个窗口显示帮助文档,或者是在控制台中显示帮助文档,具体的显示方式取决于读者所使用的操作系统。help命令的一个快捷方式是?号(问号),然后在后面加上函数的名称: 代码 1 <span class="pun">></span><span class="pln"> </span><span class="pun">?</span><span class="pln">mean</span> 如果只是想知道函数有哪些参数,顺序是怎样安排的,就可以用args函数: 代码 1 2 3 4 5 6 <span class="pun">></span><span class="pln"> args</span><span class="pun">(</span><span class="pln">mean</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> </span><span class="pun">(</span><span class="pln">x</span><span class="pun">,</span><span class="pln"> </span><span class="pun">...)</span><span class="pln"> NULL </span><span class="pun">></span><span class="pln"> args</span><span class="pun">(</span><span class="pln">sd</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> </span><span class="pun">(</span><span class="pln">x</span><span class="pun">,</span><span class="pln"> na</span><span class="pun">.</span><span class="pln">rm </span><span class="pun">=</span><span class="pln">FALSE</span><span class="pun">)</span><span class="pln"> NULL</span> args函数的第一行输出是函数调用的概要。对于mean函数,概要中显示的是其唯一的参数,x,这是一个数值向量。对于sd函数,概要中首先也是一个同样的向量,x,还有另一个名为na.rm的可选参数。(读者可以忽略第二行输出,通常都是NULL。) 大部分函数的文档的末尾都会有例子。在R里面可以直接运行这个例子,演示函数的功能。例如,mean函数的文档中就有几个例子。读者不必自己输入这些例子。用example函数就能看到这些例子的运行结果: 代码 1 2 3 4 5 6 7 8 9 <span class="pun">></span><span class="pln"> example</span><span class="pun">(</span><span class="pln">mean</span><span class="pun">)</span><span class="pln"> mean</span><span class="pun">></span><span class="pln"> x </span><span class="pun"><-</span><span class="pln"> c</span><span class="pun">(</span><span class="lit">0</span><span class="pun">:</span><span class="lit">10</span><span class="pun">,</span><span class="pln"> </span><span class="lit">50</span><span class="pun">)</span><span class="pln"> mean</span><span class="pun">></span><span class="pln"> xm </span><span class="pun"><-</span><span class="pln"> mean</span><span class="pun">(</span><span class="pln">x</span><span class="pun">)</span><span class="pln"> mean</span><span class="pun">></span><span class="pln"> c</span><span class="pun">(</span><span class="pln">xm</span><span class="pun">,</span><span class="pln"> mean</span><span class="pun">(</span><span class="pln">x</span><span class="pun">,</span><span class="pln"> trim </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0.1</span><span class="pun">))</span><span class="pln"> </span><span class="pun">[</span><span class="lit">1</span><span class="pun">]</span><span class="pln"> </span><span class="lit">8.75</span><span class="pln"> </span><span class="lit">5.50</span><span class="pln"> mean </span><span class="pun">></span><span class="pln"> mean</span><span class="pun">(</span><span class="typ">USArrests</span><span class="pun">,</span><span class="pln"> trim</span><span class="pun">=</span><span class="lit">0.2</span><span class="pun">)</span><span class="pln"> </span><span class="typ">Murder</span><span class="pln"> </span><span class="typ">Assault</span><span class="pln"> </span><span class="typ">UrbanPop</span><span class="pln"> </span><span class="typ">Rape</span><span class="pln"> </span><span class="lit">7.42</span><span class="pln"> </span><span class="lit">167.60</span><span class="pln"> </span><span class="lit">66.20</span><span class="pln"> </span><span class="lit">20.16</span> 用户只需要输入example(mean),R会负责运行文档中的例子,并显示结果。 关于作者 陈钢, 华大基因, 研究员 长沙土鳖,Linux系统初级管理员,Perl入门级程序员,R菜鸟,LaTeX爱好者,Python学习者,业余Web开发人员,生物信息学和系统生物学门外汉~ Blog 豆瓣 新浪微博 向文章付费 请作者吃饭 相关文章 1 [翻译]R入门25招,第13招:比例的置信区间 2 [翻译]R入门25招,第25招:访问包中的函数 3 RSPerl:在Perl里面调用R 4 [翻译]R入门25招 第3招:查看R的文档 5 [翻译]R入门25招 第7招:创建向量 第3招:查看R的文档 Posted on 2011年4月13日 by 陈钢 问题 要阅读R附带的文档。 解决方案 执行help.start函数可以看到文档的目录: 代码 1 <span class="pun">></span><span class="pln"> help</span><span class="pun">.</span><span class="pln">start</span><span class="pun">()</span> 这里有链接指向所有已安装的文档。 讨论 R本身都附带了上千页内容丰富的文档。在安装其它的包时,相应的文档也会安装到电脑上。 用help.start函数可以很方便的浏览这些文档,该函数会打开一个浏览器窗口,显示出最顶层的目录,见图1-1。 图1-1 R文档目录 在References部分中有两个链接是特别有用的: · Packages 点击这个链接能看到所有已经安装的包,包括基础包和额外安装的包。点击各个包的名称,就能看到其中的函数和数据集。 · Search Engine \& Keyword 这是一个简单的搜索引擎,可以用关键字搜索文档。这里还有一些按主题组织的常见关键字,点击这些关键字能看到与其相关的页面。 扩展阅读 本地计算机上的文档其实跟R项目网站上的文档是一样的,网站上的文档经常会更新。 关于作者 陈钢, 华大基因, 研究员 长沙土鳖,Linux系统初级管理员,Perl入门级程序员,R菜鸟,LaTeX爱好者,Python学习者,业余Web开发人员,生物信息学和系统生物学门外汉~ Blog 豆瓣 新浪微博 向文章付费 请作者吃饭 相关文章 1 [翻译]R入门25招,第16招:画散点图 2 [翻译]R入门25招,第19招:画直方图 3 [翻译]R入门25招,第17招:画柱状图 4 [翻译]R入门25招,第23招:检查线性回归 5 [翻译]R入门25招 第4招:在网上搜索帮助信息 第4招:在网上搜索帮助信息 Posted on 2011年4月19日 by 陈钢 问题 在网络上搜索跟R有关的信息和问题解答。 解决方案 在R中,可以用RSiteSearch函数搜索关键字或短语: 代码 1 <span class="pun">></span><span class="pln"> </span><span class="typ">RSiteSearch</span><span class="pun">(</span><span class="str">"key phrase"</span><span class="pun">)</span> 如果用浏览器的话,可以用这些网站搜索R相关的信息: § http://rseek.org 这是一个针对跟R有关的网站的Google自定义搜索。 § Stack Overflow是一个具有搜索功能的Q&A网站,主要是面向一些编程方面的问题,例如数据结构、编码和图形等。 § Stack Exchange上的统计分析(Statistical Analysis)区也是一个有搜索功能的Q&A网站,但这个网站更加偏向于统计,而不是编程。 讨论 RSiteSearch函数会打开一个浏览器窗口,并打开R项目网站的搜索引擎。在这里能看到一个可以继续优化的初始搜索结果。例如,下面这个命令会搜索“canonical correlation”: 代码 1 <span class="pun">></span><span class="pln"> </span><span class="typ">RSiteSearch</span><span class="pun">(</span><span class="str">"canonical correlation"</span><span class="pun">)</span> 这非常不方便,不用离开R,就可以完成一些快速的搜索。但是,这个搜索只局限于R的文档和邮件列表的存档。 RSeek.org提供了范围更广的搜索。RSeek利用了Google搜索引擎的强大功能,但专注于跟R相关的网站。所以,用RSeek不会像在一般的Google中那样搜出一大堆无关的的搜索结果。RSeek.org最给力的地方是其搜索结果的组织非常直观方便。 图1-2 RSeek.org的搜索结果 如1-2展示了在RSeek.org中搜索“canonical correlation”的搜索结果。网页的左侧是从各个R网站中搜索出来的内容。网页的右侧的标签就是将这些搜索结果组织成如下几个类: § Introduction,简介 § Task Views,任务视图 § Support Lists,支持列表 § Functions,函数 § Books,书 § Blogs,博客 § Related Tools,相关的工具 例如,点击Introductions标签,就能看到各种教程。Task Views标签中则是跟搜索词有关的Task View。类似的,Functions标签中的链接则是指向相关的R函数。这是一种组织搜索结果的好办法。 Stack Overflow也被称为Q&A网站,意思就是任何人可以在网站上提问,有经验的用户则会回答问题——一个问题通常会有多个答案。读者给答案投票,最好的答案就会逐步地升到顶部。这样就构成了一个能搜索的庞大的Q&A对话数据库。Stack Overflow显然是面向问题的,而且上面的话题通常更侧重于R的程序设计。 Stack Exchange(不是Overflow)有一个专门的Statistical Analysis(统计分析)分区。这里更关注的是统计,而不是编程。所以,如果读者的问题更侧重于一般的统计学而不是R本身的话,可以到这里来提问。 扩展阅读 如果找到了有用的软件包,用install.packages函数就能将软件包安装到电脑上。 关于作者 陈钢, 华大基因, 研究员 长沙土鳖,Linux系统初级管理员,Perl入门级程序员,R菜鸟,LaTeX爱好者,Python学习者,业余Web开发人员,生物信息学和系统生物学门外汉~ Blog 豆瓣 新浪微博 向文章付费 请作者吃饭 相关文章 1 [翻译]R入门25招,第15招:检验相关性的显著性 2 [翻译]R入门25招 第3招:查看R的文档 3 [翻译]R入门25招,第18招:画箱图 4 [翻译]R入门25招,第16招:画散点图 5 [翻译]R入门25招,第23招:检查线性回归 第5招:读取表格数据文件 Posted on 2011年4月27日 by 陈钢 问题 读取含有数据表格的文本文件。 解决方案 用read.table函数,该函数会返回一个数据框(data frame): 代码 1 <span class="pun">></span><span class="pln"> dfrm </span><span class="pun"><-</span><span class="pln"> read</span><span class="pun">.</span><span class="pln">table</span><span class="pun">(</span><span class="str">"filename.txt"</span><span class="pun">)</span> 讨论 表格数据文件是很常见的。这是一种格式简单的文本文件: § 每一行是一条记录 § 在每条记录中,各个字段之间都用一个字符分给,例如空格、制表符、逗号、分号等 § 每条记录的字段的数量是一样的 这种格式比固定宽度的格式更加灵活,每个字段的位置不再需要对齐。下面就是一个名为statisticians.txt的表格文件,是用空格符分割字段的: 代码 1 2 3 4 5 <span class="typ">Fisher</span><span class="pln"> R</span><span class="pun">.</span><span class="pln">A</span><span class="pun">.</span><span class="pln"> </span><span class="lit">1890</span><span class="pln"> </span><span class="lit">1962</span><span class="pln"> </span><span class="typ">Pearson</span><span class="pln"> </span><span class="typ">Karl</span><span class="pln"> </span><span class="lit">1857</span><span class="pln"> </span><span class="lit">1936</span><span class="pln"> </span><span class="typ">Cox</span><span class="pln"> </span><span class="typ">Gertrude</span><span class="pln"> </span><span class="lit">1900</span><span class="pln"> </span><span class="lit">1978</span><span class="pln"> </span><span class="typ">Yates</span><span class="pln"> </span><span class="typ">Frank</span><span class="pln"> </span><span class="lit">1902</span><span class="pln"> </span><span class="lit">1994</span><span class="pln"> </span><span class="typ">Smith</span><span class="pln"> </span><span class="typ">Kirstine</span><span class="pln"> </span><span class="lit">1878</span><span class="pln"> </span><span class="lit">1939</span> read.table函数就是用来读取这种文件的。缺省情况下,该函数认为数据字段是由空白(空格或制表符)分割的: 代码 1 2 3 4 5 6 7 8 <span class="pun">></span><span class="pln"> dfrm </span><span class="pun"><-</span><span class="pln"> read</span><span class="pun">.</span><span class="pln">table</span><span class="pun">(</span><span class="str">"statisticians.txt"</span><span class="pun">)</span><span class="pln"> </span><span class="pun">></span><span class="pln"> </span><span class="kwd">print</span><span class="pun">(</span><span class="pln">dfrm</span><span class="pun">)</span><span class="pln"> V1 V2 V3 V4 </span><span class="lit">1</span><span class="pln"> </span><span class="typ">Fisher</span><span class="pln"> R</span><span class="pun">.</span><span class="pln">A</span><span class="pun">.</span><span class="pln"> </span><span class="lit">1890</span><span class="pln"> </span><span class="lit">1962</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="typ">Pearson</span><span class="pln"> </span><span class="typ">Karl</span><span class="pln"> </span><span class="lit">1857</span><span class="pln"> </span><span class="lit">1936</span><span class="pln"> </span><span class="lit">3</span><span class="pln"> </span><span class="typ">Cox</span><span class="pln"> </span><span class="typ">Gertrude</span><span class="pln"> </span><span class="lit">1900</span><span class="pln"> </span><span class="lit">1978</span><span class="pln"> </span><span class="lit">4</span><span class="pln"> </span><span class="typ">Yates</span><span class="pln"> </span><span class="typ">Frank</span><span class="pln"> </span><span class="lit">1902</span><span class="pln"> </span><span class="lit">1994</span><span class="pln"> </span><span class="lit">5</span><span class="pln"> </span><span class="typ">Smith</span><span class="pln"> </span><span class="typ">Kirstine</span><span class="pln"> </span><span class="lit">1878</span><span class="pln"> </span><span class="lit">1939</span> 如果不是用空白分割符,可以用用sep参数指定分隔符。例如,如果字段分隔符是冒号(:),就可以这样读取: 代码 1 <span class="pun">></span><span class="pln"> dfrm </span><span class="pun"><-</span><span class="pln"> read</span><span class="pun">.</span><span class="pln">table</span><span class="pun">(</span><span class="str">"statisticians.txt"</span><span class="pun">,</span><span class="pln"> sep</span><span class="pun">=</span><span class="str">":"</span><span class="pun">)</span> 从输出中看不出什么问题,但实际上read.table会把姓和名视作factor,而不是字符串。我们可以查看一下这两列的class: 代码 1 2 <span class="pun">></span><span class="pln"> </span><span class="kwd">class</span><span class="pun">(</span><span class="pln">dfrm$V1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">[</span><span class="lit">1</span><span class="pun">]</span><span class="pln"> </span><span class="str">"factor"</span> 为了不让read.table将字符串视为factor,把stringAsFactor参数设为FALSE: 代码 1 2 3 <span class="pun">></span><span class="pln"> dfrm </span><span class="pun"><-</span><span class="pln"> read</span><span class="pun">.</span><span class="pln">table</span><span class="pun">(</span><span class="str">"s
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 百科休闲 > 社会民生

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服