Class 01 - R语言介绍及部分功能演示

news2024/10/7 10:20:26

Class 01 - R语言介绍及部分功能演示

  • 教程介绍
  • 功能演示
    • 数据导入
  • R语言&Python对比
    • 在数据科学中的不同优势

教程介绍

在本章中,将学习到编程的新概念,以及如何使用R语言来做数据的分析。

我们先谈谈计算机编程吧,计算机编程是指向计算机发出指令以执行一个或一组操作。可以使用不同的编程语言来编写这些指令。也可以根据想要从事的项目或想要解决的问题选择特定的语言。在数据分析中python和R语言是最常用的语言。

R编程语言在组织、清理和分析数据方面非常有用。如果这是你第一次接触计算机编程,R是一个很好的起点。

当我第一次开始学习数据分析时,我也没有编程的背景。不过我是先接触的Python语言,之后再学习的R语言。其实也有很多朋友从其他领域进入到这个领域,也都是后来才学习的编程语言如R或者Python。

第一次学习R语言可能会有一定的挑战性,但是当你真正开始学习之后,会觉得其实也并没有那么难,在分析数据方面R语言用起来其实会更简单。

本章是对R语言的一些介绍,帮助你了解R语言的用途。之后会逐渐学习到更多的R语言技能。一步一步来,按自己的节奏走。只要多加练习都没有问题的。

学习R语言能够让你在数据分析中更进一步。当你学会了R语言之后,在去学习其他的编程语言时,会发现其实有很多理念都时相通的,会帮助你更快的掌握其他的编程语言。(建议可以在学习python,因为在更高级的机器学习,深度学习中,用python会更方便一些)

在学习了R语言之后,你会发现在日程的工作学习中有很多地方可以用到编程的技能。它开启了一个充满可能性的新世界。

R语言学习进程:

先从介绍编程语言开始;然后,将研究R本身,并探索其主要特性和功能,还将介绍一些基本的编程概念,并学习如何在R中有效地使用它们;接下来,将学习如何在R中使用数据。你将发现R如何增强你的数据分析技能,并以更强大的方式清理,转换,可视化和报告数据。

功能演示

当我刚开始学习R语言时,它的视觉效果是真的很漂亮,功能也很强大。你可以写一点代码,然后,就会得到一个很棒的数据可视化效果。下面的内容将是你将要学习的内容的预览。在这套R语言教程学习完后,你不仅可以理解所有这些代码,还可以编写和执行这些代码。

数据导入

让我们首先加载一个库并获取要使用的数据集。这次使用的是帕尔默企鹅数据集,其中包含生活在南极洲帕尔默群岛的三种企鹅的尺寸测量。这包括身体质量(body mass)、鳍长(flipper length)和喙长(bill length)等数据。该数据集有344行信息,分为8列。我们会在以后的课程中看到更多这样的数据集。

# 安装下载数据包
install.packages('palmerpenguins')

# 导入 数据包
library('palmerpenguins')

假如我们想可视化身体质量和鳍长之间的关系。一般我们可能会猜到企鹅越大,脚蹼就越长。下面我们就通过制作一个散点图来显示两个变量之间的关系。

这两个变量是用来比较我们的体重和鳍长。现在不需要记这些代码等。后面还会一个一个的详细讲到这些代码,现在只是演示一下强大的可视化功能。

首先要加载画图的工具包ggplot2,然后绘制一个散点图。

# 安装ggplot2
install.packages('ggplot2')
# 加载ggplot2
library('ggplot2')
#绘制散点图
ggplot(data = penguins,aes(x=flipper_length_mm,y=body_mass_g)) + geom_point()

在这里插入图片描述
这是一个完整的绘图函数,可以看到这个函数从+号分开有前后两个部分 ggplot() 和 geom_point() 构成,下面我们之运行一个ggplot()来看一下会得到什么样的图形。

ggplot() 

运行代码,我们得到的只是一个空白的图。
在这里插入图片描述

如果我们添加更多的代码,R将在我们的plot的每次访问上添加标签,并为数据添加线条。

ggplot(data = penguins,aes(x=flipper_length_mm,y=body_mass_g))

身体质量在y轴上,鳍长在x轴上,但数据点还不可见。
在这里插入图片描述

为了得到完整的图,我们可以添加一些代码来告诉R如何表示我们的数据,如前面完整的图表代码一样,在后面添加 + geom_point() 来告诉R我们要绘制的是一个散点图。
但是画出来的图都是黑的看起来太单调了,这时我们可以通过color来设置数据点的颜色。
如所有点的颜色都换成红色。

ggplot(data = penguins,aes(x=flipper_length_mm,y=body_mass_g)) + geom_point(color='tomato')

可以在geom_point()的括号中加入color=“tomato”,现在输出的图像就是红色的点。
在这里插入图片描述

我们还可以添加新的信息,通过不同的颜色来区分企鹅的类别,我们可以把color设置为species,告诉R按企鹅种类分配不同的颜色。这样我们就可以看到企鹅的分类数据了。

ggplot(data = penguins,aes(x=flipper_length_mm,y=body_mass_g)) + geom_point(aes(color=species))

在这里插入图片描述
图右边的图例告诉我们,蓝色(Gentoo)是最大的。这样能更直观的看出来数据所包含的信息。而且图形的配色也是让人看起来很舒服美观的。


我们还可以用形状来突出不同的企鹅种类。

ggplot(data = penguins,aes(x=flipper_length_mm,y=body_mass_g)) + geom_point(aes(shape=species))

在这里插入图片描述


我们还可以同时使用颜色和形状来对企鹅进行分类展示。

ggplot(data = penguins,aes(x=flipper_length_mm,y=body_mass_g)) + geom_point(aes(shape=species,color=species))

在这里插入图片描述


除了突出显示我们的数据,我们还可以对其进行重组。

除了可以对数据进用颜色或者形状来区分分类,还可以把数据切分为多个子图,每一个子图展示一个分类数据。比如我们还是按照分类来区分数。

ggplot(data = penguins,aes(x=flipper_length_mm,y=body_mass_g)) + geom_point(aes(shape=species,color=species)) + facet_wrap(~species)

通过添加facet_wrap()函数让我们为以不同的企鹅类别创建一个单独的图。

在这里插入图片描述
前面虽然用颜色把类别区分了出来,但是数据还是混在一起展示的,红色和绿色的数据相互交叉很难看出来其中一个数据的单独样子。现在我们把数据都单独的绘制一个子图来展示,这样能更清晰的查看数据。


我们还可以在图表中添加文本,设施标题。

ggplot(data = penguins,aes(x=flipper_length_mm,y=body_mass_g)) + geom_point(aes(shape=species,color=species)) + facet_wrap(~species) + labs(title="不同种企鹅数据")

在这里插入图片描述

最后在图形绘制完成后,我们还可以保存绘制好的图形,方便我们做分析报告,或者ppt的时候来用。
在右下绘图区域,点击Export,就可以直接把图保存成图片或者是PDF格式。
在这里插入图片描述
在选择保存图片时,还有多种图片格式供你来选择,基本能够满足日常使用的全部图片格式。如:PNG,JPEG,TIFF 等
在这里插入图片描述

好了,展示到底结束。

希望你能够更加想要学习R。随着学习的深入,还有更多好看的图表等你来绘制。

R语言&Python对比

人们经常想知道他们应该先学习哪种编程语言。你可能也在想这个问题。R语言是基础数据分析的一个很好的起点,它有初学者可以应用于项目中非常有用的包。在学习R语言后建议也学习Python。如果你对其他编程语言感到好奇,请尽一切努力继续学习。

初学者开始学习的任何语言都会有一些优势和挑战。通常在数据分析使用的编程语言中都会那R语言和Python来比较。下表是这两个编程语言的一部分比较信息。

其实在网络上一搜索都会有很多这方面的信息,尤其在刚开始学习编程的时候,会纠结到底先学习Python还是R语言,相知道哪一个更容易学,上手更快。其实python和R语言,都不难学,在数据分析的工作中这两种语言都有各自的优势,我们只需要选择一喜欢的,学下去就可以了,当你学会了其中一个再去学习另一个的时候,会发现他们有很多地方是相通的,学习第二个的时候会特别的快。

基本功能的比较:

编程语言RPython
共同特性- 开源
- 以数据帧形式存储的数据
- 公式和函数随时可用
- 代码开发和支持社区
- 开源
- 以数据帧形式存储的数据
- 公式和函数随时可用
- 代码开发和支持社区
优势- 数据操作、数据可视化和统计软件包
- 统计分析方面
- 简单的语法,机器学习的需要
- 与云平台集成,应用范围更广

在数据科学中的不同优势

关于这个话题有很多热烈的讨论,但也有一些很棒的、有思想的文章。一些人认为Python更适合作为通用编程语言,而另一些人则认为数据科学最好由专门的语言和工具链来服务。对这两种语言的起源和发展轨迹进行比较和对比,往往是为了支持不同的结论。

对于个人数据科学家来说,需要考虑以下几点:

  • Python是一种很棒的通用编程语言,有许多专门用于数据科学的库。
  • 许多(如果不是大多数的话)通用编程入门课程现在开始使用Python进行教学。
  • Python是许多ETL和机器学习工作流的首选语言。
  • 现在很多(如果不是大多数的话)统计学和数据科学的入门课程都教授R语言。
  • R已经成为世界上最大的统计知识库,有数千甚至数万种算法的参考实现,这些算法已经经过专家的审查。许多R包的文档都包含指向该主题主要文献的链接。
  • R的入门门槛非常低,可以进行探索性分析,并将其转换为出色的报告、仪表板或API。
  • R和RStudio通常被认为是进行探索性数据分析的最佳场所。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/507678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络学习笔记-数据链路层

目录 概述 三个功能 封装成帧 透明传输 差错检测 点对点协议PPP 三个组成部分 帧格式 透明传输 工作状态 使用广播信道的局域网 以太网 两个主要标准 高速以太网(速率 > 100Mb/s) MAC层: 集线器 交换机 自学习和转发帧 生…

tkinter+re实现百度网盘分享链接自动跳转

目录 一、背景 二、需求分析 三、实现 三、打包 四、测试 一、背景 相信大家使用百度网盘的时候都会去一些链接网站吧,比如下面这个网站 这个网站具体实现的功能是:管理员上传百度网盘链接,用户点击复制链接按钮可以将百度网盘的分享链…

线性结构-数组

数组(Array)是最简单的数据结构,是由有限个相同类型的变量或对象组成的有序集合。因为数组中各元素之间是按顺序线性排列的,所以数组是一种线性数据结构。 数组是一类物理空间和逻辑形式都连续的线性数据结构: 数组用唯一的名字标识&#xf…

输出数字的位数(C语言)以及逆序输出

#include <stdio.h>int main() {int N;int i 0;scanf("%d",&N);int a[5];int j;while(N > 0){a[i] N%10;i;N N/10;}printf("这个数字是%d位数\n",i); for(j 0;j < i;j){printf("%d",a[j]);} } 原题如下&#xff1a;

并发编程08:原子操作类

文章目录 8.1 基本类型原子类8.1.1 常用API简介8.1.2 Case 8.2 数组类型原子类8.2.1 常用API简介8.2.2 Case 8.3 引用类型原子类8.4 对象的属性修改原子类8.4.1 使用目的8.4.2 使用要求8.4.3 Case 8.5 原子操作增强类原理深度解析8.5.1 常用API8.5.2 面试题8.5.3 点赞计数器8.5…

读书笔记-《ON JAVA 中文版》-摘要15[第十五章 异常]

文章目录 第十五章 异常1. 异常概念2. 基本异常2.1 基本异常2.2 异常参数 3. 异常捕获3.1 try 语句块3.2 异常处理程序3.3 终止与恢复 4. 自定义异常4.1 自定义异常 5. 异常声明6. 异常捕获6.1 捕获所有异常6.2 多重捕获6.3 栈轨迹6.4 重新抛出异常6.5 精准的重新抛出异常 6.6 …

ExpressGridPack Crack快速电子表格

ExpressGridPack Crack快速电子表格 ExpressEditors库 外壳对话框-对话框窗体不会出现在活动监视器中。 TdxVisualRefinements.PPadding属性对dxTokenEdit没有影响。 Express库 TdxVisualRefinements.PPadding属性对dxTokenEdit没有影响。 ExpressQuantumTreeList套件 TcxTreeL…

二层交换机和三层交换机到底区别在哪?

你好&#xff0c;这里是网络技术联盟站。 今天我们谈谈二层交换机和三层交换机。 二层交换机的概念和特点 二层交换机是一种工作在数据链路层的网络设备&#xff0c;主要功能是根据数据帧中的MAC地址进行转发&#xff0c;并将这些MAC地址与对应的端口记录在自己内部的一个地…

IDA常用宏定义函数

一.引言 做题目遇到了几个神奇的函数. SDWORD1(x), SDWORD2(x), SHIDWORD(x) 通过查询得知是IDA的宏定义函数 宏定义本身类似字符串替换,假设#define x 666 只是编译器在预处理阶段进行宏展开,将所有的x替换为666,然后再进行编译 二.IDA宏定义头文件 可以在路径\IDA_Pro_7.7…

Dubbo2.7 纯注解使用+ Nacos + Springboot 整合集成

Dubbo2.7 纯注解使用 NacosSpringboot 环境准备篇相关依赖nacos准备代码编写服务提供者服务使用者整体结构图 结果 常规操作篇服务分组服务版本参数传递泛化调用参数校验只订阅延迟暴露服务端异步回调多协议复用多注册中心本地存根 服务治理篇超时时间重试并发控制权限控制服务…

css04笔记

目录 盒子模型 5.7 外边距折叠现象 – ① 合并现象 5.8 外边距折叠现象 – ② 塌陷现象 5.9 行内元素的margin和padding无效情况 一、结构伪类选择器 &#xff08;了解&#xff09;nth-of-type结构伪类选择器 二、伪元素 三、标准流 四、浮动 浮动的代码&#xff1a; …

用 Pygal 模拟掷骰子

这篇博客&#xff0c;我们将学习使用 python可视化包 Pygal 来生成矢量图形文件。针对于需要在尺寸不同的屏幕上显示的图表具有很大用处。因为它们可以自动缩放&#xff0c;以此来适合观看者的屏幕。 . 在这个项目中&#xff0c;我们将对掷骰子的结果进行分析。掷6面的常规骰子…

<Linux> 基础IO(文件操作、文件描述符fd、重定向)

基础IO&#xff08;文件操作、文件描述符fd、重定向&#xff09; 文章目录 基础IO&#xff08;文件操作、文件描述符fd、重定向&#xff09;一、回顾C和C的文件操作二、C语言文件IO1.什么是当前路径&#xff1f;2.C语言文件接口汇总3.默认打开的三个流 三、系统文件IO1.open2.c…

真题详解(索引长度计算)-软件设计(七十一)

真题详解(哈希冲突)-软件设计&#xff08;七十)https://blog.csdn.net/ke1ying/article/details/130566800 在面向对象系统中&#xff0c;一个类定义了大体相似的对象&#xff0c;这些对象共享_____。 属性和行为。 &#xff08;属性就是状态&#xff09; 数据库主要分为用户…

shapefile.js实现shp数据的上传与展示

概述 shapefile是常见的矢量数据格式&#xff0c;但是由于其文件组成结构很难在webgis上直接展示。本文通过express和compressing实现打包后shapefile文件的上传&#xff0c;并结合shapefile.js实现shapefile数据的转换展示。 实现效果 实现代码 1. 后端实现 router.post(/…

Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)

Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值&#xff0c;Java&#xff08;1&#xff09; &#xff08;1&#xff09;在工程的根build.gradle文件里面添加cn.quinnchen.hunter:hunter-debug-plugin引用&#xff1a; buildscript {repositories {mavenCentra…

SAP CAP篇三:定义Model

SAP CAP篇一:快速创建一个Service&#xff0c;基于Java的实现 SAP CAP篇二&#xff1a;为Service加上数据库支持 文章目录 理解CAP的ModelDomain-Driven DesignKISSBasic TypesCommon Reuse TypecuidmanagedtemporalCountry, Currency, LanguagecodeList Assocation & Comp…

匹配算法之 匈牙利算法详解

参考&#xff1a; 算法学习笔记(5)&#xff1a;匈牙利算法漫谈匈牙利算法匈牙利算法、KM算法匈牙利算法&#xff08;二分图&#xff09;通俗易懂小白入门&#xff09;二分图最大匹配——匈牙利算法多目标跟踪之数据关联&#xff08;匈牙利匹配算法和KM算法&#xff09;【小白学…

手把手教你使用gtest写单元测试

开源框架&#xff1a;gtest&#xff0c;它主要用于写单元测试&#xff0c;检查真自己的程序是否符合预期行为。这不是QA&#xff08;测试工程师&#xff09;才学的&#xff0c;也是每个优秀后端开发codoer的必备技能。 本期博文内容及使用的demo&#xff0c;参考&#xff1a; …

40、Java 并发编程基础 ①

目录 一、进程&#xff08;Process&#xff09;二、线程&#xff08;Thread&#xff09;三、线程的串行四、多线程五、多线程原理六、多线程优缺点七、Java 的默认线程八、开启新线程(1) new Thread()(2) 继承 Thread&#xff0c;重写 run 方法(3) run() 和 start() 九、多线程…