为什么而学?
做一件事,学一门语言,到底为什么而学,搞清楚目的再谈学习什么语言,因为要去医院实习的缘故,认识很多医学生想要学习生信。我常常会先和他们聊一聊什么是生信,为什么学,我希望在开始学习之前大家也能问自己两个问题。我学习编程语言是不是跟风,有没有明确的目的
如果你有明确的目的,那学习编程语言是为了转行还是为了更好的服务于自己的科研
其实我并不在意你因为什么而学习编程,只是为了发文章可以,能够画出更好的图亦可,想要换一个行业也没有问题。条条大路通罗马,何不选择最简单便捷的一条。无论从哪个方面来讲,尤其是你没有任何的编程基础情况下,尤其是你的学习时间并不充裕的时间下(医学生的时间总是那么的宝贵),入门生信的第一门语言绝对是R,如果你不止是为了科研绘图、不止是为了水一篇文章亦或者你有其他的想法想要接触更多,我也不会让你在Python学习的道路上走太多的歧路。
为什么是R?R在绘图中具有独到的优势:箱线、条形、散点、密度手到擒来,配色、图例、标签应有尽有。
常用的数据类型dataframe接近excel更加便于理解
统计出身的R在数据分析中可以灵活处理各种数据分析问题,尤其是数理统计
当然R的重要性是不言而喻的,关键就在于怎么来学习R语言。
关于R语言学习技能路径:
基础技能入门:安装加载包、数据结构、变量类型(str)、数据导入/导出(read)、数据筛选数据(filter/select)、合(merge)、匹配(match)、追加(mutate)、长宽转换(reshape)、数据索引(index)、循环(while.for)、判断(if)、排序(sort/rank)、缺失值(is.na)、正则
这一部分我推荐你看一些书籍,直接对着书上面进行基本技能练习,在这个过程中head、str、help函数的使用频率>=1000次是极佳的。哪一本都可以,比如这一本的第二版前三章:
这个时候你的基础已经初步具备了,下面咱们就要开始做数据分析了。R做数据分析有些人比较喜欢用r-base(基础版本),当然我个人比较倾向于tidyverse(可以理解为加长升级版本)。使用前需要先安装然后加载他(安装就像你买了回来,加载表示你要用他了)。你以为这些就可以直接画图了吗?各种脏数据扑面而来,60%的时候就花费在了数据预处理上,我们看一下数据处理的流程。
第一步:数据预处理:
下面就开始第一步了,这里推荐完成 R语言数据处理120题 一定不要复制粘贴,一个一个敲起来。优秀的预处理能力是你的数据分析中的锋利的宝剑。尤其是在缺失值、异常值离群点、冗余数据的处理技巧上。
第二步:数据可视化
做数据可视化的过程中会涉及一些统计的知识,那么下面的一些统计基础就派上了用场。
如果是医学生,恰好有一本深得人心的医学统计书籍。
我自己也在着手更新:
其实什么类型的数据画什么图都是很有讲究的
至于画图的细节每一种类型的图都需要详细进行讲解,我的ggplot2科研绘图篇也即将开始更新了,可以和小柯一起学画图。先来张看一看效果~
赶着学习的可以多看看书,专门挑ggplot2画图这一节即可,理解底层画图逻辑(像PS的图层)。看视频虽然也讲的很清晰,但是最好还是查漏补缺用。
关于R语言学习的一些疑虑
1、没有编程基础怎么办
R是我学习的第一门正式学习的编程语言,零基础也可以学会,达成目的即可,有时候只是为了画图而已,坚持一切编程都是纸老虎(怕就永远都不会)。
2、前面的学习路径还是不是很清晰,能不能简单再顺一下R语言实战前三章
数据处理120题
基本图形+统计学了解
ggplot2科研绘图
3、学习路径太慢,可不可以直接开始科研绘图
亦可,边学边整理数据处理和统计相关知识,但是前面的基础技能还是需要看完,后期需要大量项目来进行补足,题海战术在语言学习中依然适用。你是不是想和我说没有办法实战怎么办?我……好人做到底,论文中的图片哪里来,R绘图来,数据哪里来,论文里面来(拿起论文-下载数据-开始画图)。
我想学习python可不可以,有没有什么建议?
亦可,python的学习路径我在之前的文章写过,粘贴过来
关于python学习,我不推荐一开始就看太难的书籍,编程语言也很容易劝退,也不希望你只是在单纯的记忆理论,因为那样并没有太大的效果,我个人觉得还是从实战出发:
推荐一本入门的书籍:
理解这本书大约半个月左右的时间,并不会太耽误你的时间。看这本书实战的同时我还希望你做一些很通用的小项目,先在实验楼上进行学习,可以验证你的答案是否正确,这在初期是非常重要的,你一定要能够明确知道你做的是否正确:精选项目课程_IT热门课程_蓝桥课程 - 蓝桥www.lanqiao.cnwww.lanqiao.cnwww.lanqiao.cn
有一定的基础之后,也许你已经摩肩擦掌准备迎战了,这个时候的你需要有一个大神带带你,一个人闷头苦干虽然很英雄,但我并不认为这样的英雄主义可以提高你的效率,开始入手github吧,如果你对github不算很熟悉,我恰恰写了一篇github的文章:自学生信之番外篇:一键解锁github 希望能够有所帮助
github上面的python100天的项目我本人极为推崇。它可能不是最好的,但是对于初学者是比较适合的,有人带你学习是一件非常幸福的事情。先放一下github的链接。
也许你会觉得有点难,突然觉得自己好婆妈,没有关系,作者把前面入门的15天重新做了一个50天练习的项目。
我希望你能够着重注意一下正则表达式的应用(生信中你将经常用到他们): 正则表达式30分钟入门教程
这里我特意提及Numpy、Pandas、Matplotlib这三个库,着实是因为他们很重要。
Numpy:利用Python科学计算的基础包,对Numpy的掌握将会帮助你有效地使用Pandas等
Pandas:结构和操作工具,能够使Python数据分析更加快速和容易
Matplotlib和seaborn:Python可视化库。散点图、箱线图、小提琴图等都是手到擒来。
如果你能坚持走几年生物信息的道路,我想未来在生物信息学领域的深度学习会大量运用的,这几个库的熟练应用会给你一些助力,如若有机会你自己也可以尝试实现一些数据挖掘的算法,解锁一些你对于python的期待:数据挖掘18大算法实现以及其他相关经典DM算法一点建议:我不是很希望你看大部头的视频,我希望那些是你在遇到一些问题无法解决时用来查漏补缺的,我看过很多的pyhon学习视频,大多大而全,即便可以坚持,却容易陷入耗时久远而无法解决问题的困境,没错,我在这样的循环中用了一年多才醒悟。走错的路不希望其他人重走自己的路,仅此而已
R和python的学习方法都给你了,开不开始就看了你啦~还是那句话,一切编程语言都是纸老虎(怕你就永远学不会)。