作者黄天元,复旦大学博士在读,目前研究涉及文本挖掘、社交网络分析和机器学习等。希望与大家分享学习经验,推广并加深R语言在业界的应用。

邮箱:huang.tian-yuan@qq.com

前言:

R与Python是数据科学中两门最常用的开源软件,两者有很多共同点,但是在具体应用中又不太一样。作为熟练的R用户,我一直患有“学习Python困难症”,每当我想要好好学习Python的时候,我总是发现在R中也有相应的解决办法,而且我学起来要更加便捷(R的学习曲线越到后面就是越容易)。但是,现实就是Python的用户其实要更多,从招聘的岗位描述到Kaggle机器学习讨论的资源,数量上来说Python目前都是更多的。我不希望因为少学习一门语言就关上了一扇与外界交流的大门,因此决心开始学习Python。说到底,R与Python都只是解决问题的工具而已,特点有所不同,但是没有高下之分。而我想要聚焦的热点问题,则是数据科学。其实只要抓住数据科学理论的本质,同时学习R与Python并不是难事,计算机编程语言从本质上都是互通的,更何况我们解决的还是同类型的问题。网上很多用户把R与Python对立起来,其实完全没有必要,多学一门语言真的没有这么难。因为R与Python注重的就是可重复实现的函数式编程,也就是说用户在使用大部分功能的时候,可以通过复制粘贴代码并修改少量的参数就完成统计分析和可视化。从某种角度来看,两个语言的竞争合作关系反而促进了彼此的飞速发展。言归正传,将要推出的一个系列是针对数据科学主题,比较R与Python两种语言在实现上的差异,从而揭示两种语言的特点,促进两种语言用户对彼此之间的理解和包容,并推动“双语学习”。当然也欢迎初学者用这个进行数据科学的基础学习,因为我会从最最简单的例子开始。这个系列会选用Howe, Bill. (2017).Introduction to data science. Undergraduate Topics in Computer Science.的一些Python的例子,然后我会用R进行重写,然后进行讨论和比较。工作环境是Jupyter,可以支持两种语言的操作。因为经常转换语言可能会晕头转向,所以每次的内容尽量简短一点,我们细水长流。我R稍微熟一点,Python则没有那么熟,有的地方写的不到位的,欢迎大家邮件联系我,相互交流相互促进。

包的载入(Py)

包(package),或者叫模块(module),是我们在做数据科学中不可不知道的概念。一言以蔽之,就是“站在巨人的肩膀上”。各个大牛孜孜不倦推出的算法,已经可视化实现等功能,只要在开源社区中共享,用户就能免费便捷地调用。这是开源精神的集中体现,有时候想想真是不可思议,那么多大牛如此努力地设计包免费给大家用,这是什么样的情怀?也正因为有一群有情怀的人,他们才能够自由自在地交流看法和意见,相互提高,不断完善自己的包,让人类不断向极限做出挑战。言归正传,在Python中调用包,是非常简单的。

import pandas as pd import numpy as np import matplotlib.pylab as plt

翻译一下 import pandas as pd ,就是,把pandas模块导入(import)进来,然后在我们的环境中,用pd来调用pandas模块里面的内容。或者这么理解,我们把pandas大神请进来了,但是在我们的组织里面,给他的代号是pd. 上面几行代码,我就把Python中最常用的三个数据科学模块加载了进来。需要注意的是,加载包之前是需要安装的,我在Jupyter中是直接再Anaconda中先配置了环境,我知道里面有pandas,numpy和matplotlib三个模块。Jupyter的操作跟别的IDE可能不同,需要注意一下。


包的载入(R)

在R语言中,最常用的载入包的方法当属library().如果没有安装的话,就用install.packages()函数进行安装

install.packages("pacman") library(pacman)

需要注意的是,install.packages只接受字符型的包名称,而library则可以不用双引号(当然加上也是没问题的)。不过如果大家要安装一堆包的时候,就特别麻烦。我们做一个大型任务,往往都要加载一群包,这样就特别麻烦,所以建议大家用pacman这个包,下面给大家看看我的日常操作(如果没有安装这个包,请先用上面的代码安装一下)。

library(pacman) p_load(tidyverse,data.table) #或者直接 pacman::p_load(tidyverse,data.table)

这种操作(p_load函数),首先节省了打双引号的过程;其次,可以放多个包的名称,想放多少放多少;最后,如果这个包以前没有安装过,会自动帮你按照上。这种一步到位的操作确实舒心。

隐含的问题

其实安装和加载包,两种语言并没有什么特别大的差异。但是值得注意的一点是,其实Python在这种加载包的设计上已经引入了命名空间的概念,也就是后面我们要用pandas函数的时候,我们都需要用pd.*格式,如pd.read_csv().而R直接加载了包,是不会注意到这种问题的。为什么会有这个差别呢?因为Python用户有的时候需要做一个大的项目,经常要做很多函数,用很多模块,一旦重名,就会有很多问题。因此用的时候就要告诉大家我用的read_csv函数是pd的read.csv函数,也就是pandas里面的,不要弄错了。R很多时候只是为了解决一些探索性问题的时候,也许不需要加载过多的包,只需要加载少量专注度很高的包就可以了。但是不是说R就没有注意这个问题,R里面同样可以用命名空间调用函数,可以直接不用加载,用命名空间调用即可,我上面的代码就用到了这个概念,就是我要用pacman里面的p_load函数,我的表达就是pacman::p_load.事实上,R的包现在越来越多,重名的问题也非常严重,加载多个包完成任务的时候,函数往往因为重名互相覆盖掉,所以经常要使用这种“::”格式来指明你要用的是哪个包里面的这个名字的函数。不过很多人在用R的时候都是小项目,因为小,所以专精,上面提到的东西可能往往会忽略;Python则一开始就默认大家要进行复杂的操作,这样一来,就算实现一个及其简单的功能,有时候Python的代码也会长得出奇。

大家都在看

R语言二分类问题案例分析:以泰坦尼克号沉船为例

无缝对接Spark与R:Sparklyr系列—探讨属于数据科学家的Spark

公众号后台回复关键字即可学习

回复 爬虫             爬虫三大案例实战  
回复 Python        1小时破冰入门

回复 数据挖掘      R语言入门及数据挖掘
回复 人工智能      三个月入门人工智能
回复 数据分析师   数据分析师成长之路 
回复 机器学习      机器学习的商业应用
回复 数据科学      数据科学实战
回复 常用算法      常用数据挖掘算法

R与Python手牵手:数据科学导论系列(包的载入)相关推荐

  1. python二值化特征_R与Python手牵手:特征工程(数值型变换)

    原标题:R与Python手牵手:特征工程(数值型变换) 作者:黄天元,复旦大学博士在读,目前研究涉及文本挖掘.社交网络分析和机器学习等.希望与大家分享学习经验,推广并加深R语言在业界的应用. 邮箱:h ...

  2. 为何python攀上数据科学巅峰?调查显示Python超越R

    根据KDnuggets 2017年最新调查,Python生态系统已经超过了R,成为了数据分析.数据科学与机器学习的第一大语言.本文对KDnuggets的此项调查结果做了介绍,并补充了一篇文章讲解为何P ...

  3. Python超越R,为何Python攀上数据科学巅峰?

    根据 KDnuggets最新调查,Python 生态系统已经超过了 R,成为了数据分析.数据科学与机器学习的第一大语言.本文对 KDnuggets 的此项调查结果做了介绍,并补充了一篇文章讲解为何 P ...

  4. python数据科学导论_数据科学导论:Python语言(原书第3版)

    数据科学导论:Python语言(原书第3版) 作者:(意)阿尔贝托·博斯凯蒂;(意)卢卡·马萨罗 著 出版日期:2020年02月 文件大小:48.52M 支持设备: ¥50.00 适用客户端: 言商书 ...

  5. 数据科学导论python语言实现_数据科学导论:Python语言实现(原书第2版)

    数据科学导论:Python语言实现(原书第2版) 作者:(意)阿尔贝托·博斯凯蒂(Alberto Boschetti);(意)卢卡·马萨罗(Luca Massaron) 著 出版日期:2018年01月 ...

  6. 数据科学导论_数据科学导论,数据理解和准备

    数据科学导论 Data science, machine learning, data mining, advanced analytics, or however you want to name ...

  7. 读书笔记数据科学入门————数据科学导论

    数据科学导论 数据的用处:在数据中寻找隐藏问题的答案 数据科学是什么:就是从数据中剥离出真理. 在实际生活中数据的重要性,例如Facebook上的家乡居住地信息,不仅可以帮助朋友找到你的位置,同时网站 ...

  8. 数据科学导论学习小结——其三

    数据科学导论学习小结--其三 这是笔者大学二年级必修科目<数据科学基础>个人向笔记整理的第三部分,包含第六.第七两个章节.本笔记内容基于清华大学出版社<数据科学导论-探索数据的奥秘& ...

  9. 一文惊醒梦中人:Python是打开数据科学大门的钥匙 - 思路、心态【附库、练习资源链接】

    本文价值在于梳理Python对于数据科学的作用以及入门分析,也提供了一系列的书目以及网站学习资源,给到我们整个学习流程的轮廓,还是不错的.正文如下: 您正在踏上数据科学之旅,每个人都建议您从学习如何编 ...

  10. 山东大学软件学院2022-2023数据科学导论知识点整理【软工大数据课组】

    每年考点变化较大,仅供参考 CSDN的排版能力有限,因此留pdf版本,祝大伙全部95+,呼呼 山东大学软件学院2022-2023数据科学导论知识点整理[软工大数据课组]-统计分析文档类资源-CSDN文 ...

最新文章

  1. 使用open flash chart的BarGlass时遇到的问题
  2. C语言字符串库函数api
  3. [C++STL]常用算术生成算法
  4. java web学什么软件_java web开发是什么?该怎么学习?
  5. Unix环境高级编程(十五)高级I/O
  6. 面试题:计算 n!阶乘的结果的末尾有几个0
  7. Java 基础系列-LocalDate相关
  8. 澳大利亚:令人钦羡的高福利国家 - 老牛的日志 - 网易博客
  9. 关于Microsoft Project默认开始时间错误问题
  10. android怎么监听多点触摸_android 手势监听和多点触摸 笔记
  11. 拥有超过1200个PNG格式图标的免费图标集 - Cosmo Mini
  12. Unity3D点击按钮改变材质球颜色
  13. MATLAB寻找高斯光束光斑中心
  14. 罗德里格旋转公式——旋转轴的解法之一
  15. html5在线裁剪,HTML5 本地裁剪图片并上传至服务器(老梗)
  16. 茄子快传和腾讯全民Wifi配合使用
  17. Adobe系列軟件PC + MAC 2021
  18. 人无信则不立,您了解自己的信用情况吗?
  19. 云计算--day07
  20. linux资料整理之用户管理

热门文章

  1. 让程序员崩溃只需要一句话
  2. 有了这个王座,写代码的速度都加快了
  3. python 百度ai json解析_百度AI识别调用的简单例子
  4. 认证Authentication
  5. 通过Web页面获取基站位置(Web端,源码下载)
  6. luogu4360 锯木厂选址 (斜率优化dp)
  7. 单位转换及格式化显示
  8. ubuntu 安装搜狗拼音输入法
  9. Vmware中RedHat命令行和图形界面切换
  10. codeigniter CI 框架 在helper 中 使用 全局变量 方法