R语言和头发二选一,你会选择哪个?
Posted 解螺旋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言和头发二选一,你会选择哪个?相关的知识,希望对你有一定的参考价值。
你可能早就听说了统计学的当红小生R语言,辣么方便,辣么高大上,但当你终于鼓起勇气去看教程,却看到辣么多复杂的代码,头好大,从此退避三舍……但是,仔细分解起来,还是很有规律的,简单易懂。且听我慢慢道来~
R语言对我们大多数人来说,还是一种“耳熟不能详”的神秘高人,只是听说它的各种好处,比如它能轻易处理超大样本的数据,而且对电脑配置的要求不高,听说有人曾经用Excel处理过20000行的大表格,搞得电脑欲仙欲死,但用R语言完全没问题;更好的是,它还免费,不需要辛辛苦苦找破解版;Geek们更在意的是,它是开源的,所以全球用户都可以对它的功能进行检验、改进,而且它有辣么多用户,任何一个bug都会得到迅速报告并修正。
不过这都不是重点,最重要的是它能做出很多高质量的美腻又直观的数据图。
再也不怕代码复杂了,为了玩出漂亮的图,发高大上的文章,我豁出去了~
不过,一口不能吃个胖子,今天这篇文章还不能让你学会做这些图,不过已经上路了~我们先探索一些简单的统计运算,做点朴素的图来展示自己的数据吧。
打开RStudio,用Ctrl+Shift+N新建文件,得到如下窗口:
如果你安装出来的界面排版跟我不一样,请参考英文自己对上号,也可以在“Tools→Global Options→Pane Layout”里设置成和我一样的。
编辑区就是我们的战略指挥中心,在这里输入命令;工作区是军械库,可以看到我们都有哪些武器装备(包括数据库、在编辑区输入命令后生成的各种变量等);控制台则一来是后方监控,我们哪条命令运行成功,哪条失败,出了什么问题,都可以在这里看到,二来,运算结果也在这里显示;展示区,其实这个区功能比较杂,但我们暂时只用到展示统计图的Plots选项卡,所以就先这么称呼吧。
我就用我伪造的一组数据来演示吧,假设我们有一个对照组和两种药物的治疗组,检测组织切片的显微镜下A细胞计数,这个数据在Excel里是这样的:
在RStudio的工作区有个Import Dataset,点击之后选择From Excel,然后可能会提示你安装一个导入数据的工具包,选Yes,然后等它自动安装。装好后,在接下来的弹窗里,点Browse导入你的Excel文件,然后你有可能发现你的数据都变成了什么鬼……此时,需要把每一列下的double下拉框点开,全都改成Numeric。确保下面的First Row as Names选上,其他的随意啦~
细心的小伙伴可能发现,左下角Name里的Cell_Count,比原文件名Cell Count多了一个下划线。这是系统自动改的,为了符合R语言的语法。像TNF-a这样含有分隔符的,也会变成下划线。如果不涉及这些特殊符号,一般不会有变化,但还是要留一下,因为一会儿要用到Name里的名字,而不是Excel的文件名。
这时候你看到工作区多了个数据表的选项卡,工作区也补给了弹药,Data。
现在要把弹药装填上膛:把每组数据变成向量,并赋值成为变量。可以理解成给每组数据穿上R语言能识别的外衣(向量),然后起个名字(变量)。
在编辑区输入简单的三行代码,格式:随便起一个名称=c(刚才导入Excel时出现的那个Name$数据表中相应的组名),注意各种符号都要用英文半角状态。“c(blabla)”这串就是向量,前面起的那个名称就是变量。每输完一行都用Ctrl+Enter运行一下。
最后看到工作区多了个Values,其中的num表示这组向量的类型是数值,[1:16]表示这是第1~第16个数值。
要是现在就觉得输代码太麻烦了,不要怕,其实你输入前半个括号时,后半个就自动给你补齐了,不会出错的;而且输入前几个字母的时候会有弹窗提示,直接选中按Enter就好了:
代码:summary(Cell_Count),其中summary是函数名,也就是我们要做的事情,括号里的是对象,所以这行代码的意思就是,我们要对Cell_Count这个数据集做个Summary描述性统计。这就是R语言的基本格式了,其他更复杂的几乎都是在此基础上变化。
Ctrl+Enter运行之后,就可以在控制台上看到运算结果:
给出了各组的最大值、最小值、中位数、四分位距、平均值。
同理,可以用bartlett.test(Cell_Count)做方差齐性检验,用shapiro.test(Control)来检验其中Control组的正态性,这里就不展示结果了。
一个括号里还可以放两个变量,比如常用的T检验,要比较两组之间的差异,就把这两组都放到括号中,用逗号把它们隔开,输入t.test(Control,Drug_1)并运行,就会得到:
终于看到了我们心心念念的p值~当然还有95%CI、各组平均值等等。
这样,我们可以做很多类似的简单运算,比如计算对数:log(),标准差:sd()等等。再说,其实这时候我们已经可以理解不少网络上搜到的代码了,不会就搜之——R语言有个公认的好处就是,它有很多用户,你只要入门,理解代码,就很容易在网上找到帮助。
终于要画图了~拿到一组数据,我想先看看它的分散情况,通常会使用箱形图。RStudio也可以轻松完成。
上代码:boxplot(Cell_Count),运行,左下角的plot选项卡里就出现了一幅箱形图:
但是有没有觉得少了点什么……横坐标、纵坐标去哪了?
所以就要对代码进行加工,变成这样:boxplot(Cell_Count,names =c('Control','Drug 1','Drug 2'),xlab='Treatment',ylab='Cell Count / HPF'),于是得到这个图:
注意到了吗?下划线都没有了!是因为代码中做了限定,names =c('Control','Drug 1','Drug 2'),和ylab='Cell Count / HPF',每个词组都加了单引号,引号内是字符串,不参与运算,所以几乎不受符号的影响。
图的上方有个Export,从这里可以导出图片,可以根据杂志的要求保存成各种格式,还可以调整尺寸(其实导出之前拖动窗口大小也可以调整尺寸):
OK,都讲到代码的加工升级了,就不再展开了,先消化一下。
是不是很有DIY的乐趣?就像前面说的,你已经可以从网上搜些代码来对自己的数据探索一番了。Quick-R(http://www.statmethods.net/)就是这样一个社区,目的之一就是让其他统计软件(SAS, SPSS, Stata)的用户更快地转移到R语言上,俗称挖墙脚。
要是还嫌弃代码和界面都是英文好难记,虽然SPSS可能也是英文界面,但只用点击不用输入啊~这其实也是使用R语言的一大好处——反正你写文章的时候也要描述统计方法的嘛,不如平时先熟悉起来~查字典要趁早,早死早超生啊^(00)^总之,一入R门深似海,从此SPSS是路人。
那么R语言好学吗?如何让快速入门R语言呢?在这里小编向你推荐一本非常适合0基础学习的书籍
《R语言实战》
这本书比较注重实用性,全面而细致的讲解R指南,高度概括了该软件和它的强大功能,展示了使用的统计示例,且对于难以用传统方法处理的凌乱、不完整和非正态的数据给出了优雅的处理方法。作者不仅仅探讨统计分析,还阐述了大量探索和展示数据的图形功能。2版做了大量更新和修正,新增了近200页内容,介绍数据挖掘、预测性分析和高级编程。受到了很多大佬的推荐!豆瓣评分8.8分!
总之,每天抽一点点时间来看这本书,进步也是非常快的。希望你在学习R语言的道路上收获颇丰!!本次活动我们也准备了300本实体书,免费包邮!领取方式还是老办法,扫描下方二维码即可!
2.邀请好友完成助力后,点击公众号弹出的模板消息填写地址。如果出现无法填写地址的情况,可能是同一时间填写的用户人数太多导致的,您可以扫码加入公众号消息弹出的活动群,会有我们的活动小助手为您处理。
以上是关于R语言和头发二选一,你会选择哪个?的主要内容,如果未能解决你的问题,请参考以下文章
Python和Java二选一该学啥?
《R语言零基础到精通51GB》
讨 论 | R语言和Python哪个难?我应该如何选择学习?
GO语言视频教程
checkbox二选一的延伸
二选一数据选择器的设计