什么是r语言?
r语言,一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘。r本来是由来自新西兰奥克兰大学的罗斯·伊哈卡和罗伯特·杰特曼开发(也因此称为r),现在由“r开发核心团队”负责开发。r基于s语言的一个gnu计划项目,所以也可以当作s语言的一种实现,通常用s语言编写的代码都可以不作修改的在r环境下运行。r的语法是来自scheme。
r的源代码可自由下载使用,亦有已编译的可执行文件版本可以下载,可在多种平台下运行,包括unix(也包括freebsd和linux)、windows和macos。r主要是以命令行操作,同时有人开发了几种图形用户界面。
r的功能能够通过由用户撰写的包增强。增加的功能有特殊的统计技术、绘图功能,以及编程接口和数据输出/输入功能。这些软件包是由r语言、latex、java及最常用c语言和fortran撰写。下载的可执行文件版本会连同一批核心功能的软件包,而根据cran纪录有过千种不同的软件包。其中有几款较为常用,例如用于经济计量、财经分析、人文科学研究以及人工智能。
python与r语言的共同特点
python和r在数据分析和数据挖掘方面都有比较专业和全面的模块,很多常用的功能,比如矩阵运算、向量运算等都有比较高级的用法
python和r两门语言有多平台适应性,linux、window都可以使用,并且代码可移植性强
python和r比较贴近matlab以及minitab等常用的数学工具
python与r语言的区别
数据结构方面,由于是从科学计算的角度出发,r中的数据结构非常的简单,主要包括向量(一维)、多维数组(二维时为矩阵)、列表(非结构化数据)、数据框(结构化数据)。而 python 则包含更丰富的数据结构来实现数据更精准的访问和内存控制,多维数组(可读写、有序)、元组(只读、有序)、集合(唯一、无序)、字典(key-value)等等。
python与r相比速度要快。python可以直接处理上g的数据;r不行,r分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给r做分析,因此r不可能直接分析行为详单,只能分析统计结果。
python是一套比较平衡的语言,各方面都可以,无论是对其他语言的调用,和数据源的连接、读取,对系统的操作,还是正则表达和文字处理,python都有着明显优势。 而r是在统计方面比较突出。
python与r语言的应用场景
应用python的场景
1、网络爬虫与网页抓取
python 的 beautifulsoup 和 scrapy 更加成熟、功能更强大,结合django-scrapy我们可以很快的构建一个定制化的爬虫管理系统。
2、内容管理系统
python 只用 sqlachemy 通过orm的方式,一个包就解决了多种资料库连接的问题,且在生产环境中广泛使用。基于django,python可以快速通过orm建立资料库、后台管理系统,而r中的 shiny 的鉴权功能暂时还需要付费使用。
3、api的构建
通过flask、tornado等标准的网络处理库,python也可以快速实现轻量级的api,而r则较为复杂。
应用r语言的场景
1、统计分析
尽管 python 里scipy、pandas、statsmodels提供了一系列统计工具 ,r 本身是专门为统计分析应用建立的,所以拥有更多此类工具。
2、互动式面板
r的shiny 和shiny dashboard可以较快地构建定制可视化页面。速度更快,所需代码更少。
总的来说,python的pandas借鉴了r的dataframes,r中的rvest则参考了python的beautifulsoup,两种语言在一定程度上存在互补性,通常,我们认为python比r在计算机编程、网络爬虫上更有优势,而 r 在统计分析上是一种更高效的独立数据分析工具。所以说,同时学会python和r这两把刷子才是数据科学的王道。