Class 08 - 数据的读取和保存 & R语言中的管道(pip)功能

2023-11-04

数据的读取和保存

这部分用来介绍在R语言中一些常用文件的读取和保存,如最常见的csv文件、Excel文件。

还会介绍如何加载R语言中集成的数据集。

data() - 加载R中的数据集

R语言本身会集成一些数据集,可以用来联系R语言,比如“Titanic”(泰坦尼克数据)、“iris”(鸢尾花数据)等在许多数据分析或者机器学习中用到的数据集。

在R语言中可以直接使用 data() ,在括号中输入对应的数据集名称,加载这些数据集。

例如:data(Titanic) 加载Titanic(泰坦尼克数据集)。

data(Titanic)

在这里插入图片描述
当您运行该函数时,R 将加载数据集。 数据集还将出现在 RStudio 的环境面板中。

在这里插入图片描述

现在数据集已加载,您可以在 R 控制台窗格中预览它。 只需输入它的名字

Titanic

然后运行,在下面控制台区域就会显示数据集的数据信息。
在这里插入图片描述

如果直接运行data()函数本身,不在括号中指定数据集,R 将显示可用数据集的列表。

data()

输出如下:

在这里插入图片描述

可以尝试使用列表中的其他数据集来进行不同的练习和测试。


readr 功能包介绍

上面介绍了如何加载R语言内置的数据集,这些内置的数据集一般都是用来做数据分析的练习来使用的。

在实际工作中,分析的数据都是从数据库或者其他地方整理过的数据,大部分都是需要从本地电脑中导入的,那么下面就介绍如何使用readr功能包来读取文件。

readr 功能包是 tidyverse 功能包 的一个核心功能包。 如果你已经安装了 tidyverse,就可以直接开始使用 readr 中的功能函数了。 如果没有安装,可以参考前面文章来安装 tidyverse

readr 包中读取文件的函数

readr 的目标是提供一种快速且友好的方式来读取数据。 readr 支持多种 read_ 函数。 每个函数都指定读取特定的文件格式。

  • read_csv():逗号分隔值 (.csv) 文件

  • read_tsv():制表符分隔值文件

  • read_delim():一般分隔文件

  • read_fwf():固定宽度的文件

  • read_table():表格文件,其中列由空格分隔

  • read_log():网络日志文件

这些函数的使用方法都比较相似,所以只要学会了如何使用其中的一个,就可以将其的应用到其他类似的函数中。

我们重点了解read_csv()函数,因为 .csv 文件是工作和学习中最常见的数据存储形式之一,尤其在数据分析工作中,将经常使用它们。

read_csv() 读取 .csv 文件

首先我们准备一个需要读取的csv文件,比如在 kaggle 网站中下载的 Titanic 数据集。

首先我们来加载library(tidyverse) 功能包(不加载就会找不到read_csv() 这个函数),然后就可以使用 read_csv() 函数去读取文件了。

我们可以把读取的数据指定一个名称,这样方便在后续的代码中去调用。

举个例子:
先输入read_csv(),然后在括号中,您需要提供文件的路径(需要注意此处文件路径使用/来分割,不是用\来分割的)。

# 加载功能包
library(tidyverse)

# 读取文件
df = read_csv('C:/kaggle/Titanic/data/train.csv')

当运行该函数时,R 会打印出一个说明,并且右边环境中也有了设置好的函数。

在这里插入图片描述

之后我们只需要输入设置好的名称就可以显示数据集信息了。
如,直接输入df,然后运行。


# 加载功能包
library(tidyverse)

# 读取文件
df = read_csv('C:/Users/17600/OneDrive/文档/kaggle/Titanic/data/train.csv')

df

输出结果:
在这里插入图片描述


readxl 包读取Excel文件

在工作中,除了csv文件以外,最常见的可能就是Excel文件了,在R语言中要把Excel文件中的数据读取到程序中,可以使用 readxl 包。 readxl 包可以轻松地将数据从 Excel 读取到 R中。

readxl 支持传统的 .xls 文件格式和基于 xml.xlsx 文件格式。

readxl 包是 tidyverse 的一部分,但不是核心 tidyverse 包,因此需要先使用 library() 函数在 R语言 中加载 readxl

library(readxl)

read_excel() - 读取Excel文件

读取Excel文件和读取csv文件时有些区别的,因为csv文件是一个单独的文件,其中没有sheet来对数据分区,直接读取就可以的。但是Excel文件中很多时候是包含多个sheet的。

下面我们先使用read_excel()来读取Excel文件,然后产看数据信息。就像使用read_csv()那样。
在这里插入图片描述
我们看到确实读取到了数据,但是只读取了一部分,并不是Excel表中的全部数据。

下面为Excel表中的数据,其中包含一月二月三月,三个sheet,我们只读取到了第一个sheet (一月) 的数据,并没有其他两个sheet的数据。

在这里插入图片描述

那么该怎么读取全部的数据呢?这时需要在·read_excel()·函数中,添加sheet= 参数,指定读取sheet的名称。

举个例子:


# 加载功能包
library(readxl)

# 读取文件
df = read_excel('C:/kaggle/Titanic/data/这是一个Excel文件.xlsx', sheet = '二月')

df

输出如下:

在这里插入图片描述
这样就读取到不同的sheet中的数据了。

如何通过R来获取Excel中的sheet名称呢个?这时候会需要用到·excel_sheets()·函数

excel_sheets() - 读取Excel中sheet名称

·excel_sheets()·函数,可以用来读取Excel中的sheet名称。


# 加载功能包
library(readxl)

# 读取文件
excel_sheets('C:/kaggle/Titanic/data/这是一个Excel文件.xlsx')

输出结果:

在这里插入图片描述
可以看到,Excel中的sheet名称都读取到了。

R语言中的管道(pipe)功能

R语言中有一种叫做 管道(pipe) 的功能。用%>%来表示

  • 管道是 R 中的一种工具,可帮助使代码更高效、更易于阅读和理解。

  • 管道是 R 中用于表达多个操作序列的工具。 换句话说,它接受上一个语句的输出,并使其成为下一个语句的输入。 比如在需要套用多个函数在执行计算的时候,可以使用 管道(pipe) 功能来执行相同的工作。

我们将使用 ToothGrowth 数据集,这个数据集是R语言中内置的数据集。

该数据集包含有关维生素C对豚鼠牙齿生长影响的数据。

通过使用这个数据集中的数据来演示,帮助我们了解管道的工作原理。

先使用data()函数加载数据集ToothGrowth

# 加载数据

data("ToothGrowth")

然后我们可以使用 View 函数查看数据集ToothGrowth中的数据。

# 加载数据

data("ToothGrowth")

#查看数据

view(ToothGrowth)

在这里插入图片描述

view()函数会在脚本中显示一个新选项卡,显示数据集的内容。

下面我们对数据进行过滤,筛选dose=0.5的数据,之后再对数据进行排序。



# 加载数据
data("ToothGrowth")

#查看数据
view(ToothGrowth)

# 过滤数据
df <- filter(ToothGrowth,dose == 0.5)
# 排序
arrange(df,len)

输出如下:

在这里插入图片描述

如果没有管道,我们想要一次执行完前面的操作需要把函数进行嵌套,如下,

arrange(filter(ToothGrowth,dose == 0.5),len)

下面我们使用 管道(pipe) 功能来演示这段代码:


# 加载数据
data("ToothGrowth")


# 使用管道(pipe)
df <- ToothGrowth%>%
  filter(dose == 0.5)%>%
  arrange(len)
df


在这里插入图片描述
得到的结果是一样的,但是使用 管道(pipe) 会让代码的执行过程更清晰,每一步先执行什么然后再执行什么一步了然。

Tips:
在管道(pipe)操作的每一行的末尾添加管道操作符(%>%)非常重要,最后一行除外。在 RStudio 会自动缩进属于管道(pipe)的代码行。如果代码中的某行未缩进,这可能会导致错误语句

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Class 08 - 数据的读取和保存 & R语言中的管道(pip)功能 的相关文章

随机推荐

  • matlab自回归模型AIC,时间序列笔记-自回归模型(二)

    笔记说明 在datacamp网站上学习 Time Series with R track Introduction to Time Series Analysis 课程 做的对应笔记 学识有限 错误难免 还请不吝赐教 如无特殊说明 笔记中所
  • gcc常见编译参数介绍

    1 常见编译参数介绍 gcc可以说是个伟大的编译器集合 支持c c object c java fortran pascal ada等一大堆语言 同时支持几乎所有32位以上的cpu和部分16位 8位cpu 因此几乎所有开源操作系统 商业un
  • uniapp微信小程序 ios端部分机型屏幕可左右滑动原因即处理

    1 原因 因为部分元素超过了屏幕尺寸大小 2 处理 在超出屏幕尺寸的元素上一级使用 width 100 overflow x hidden 如果是图片导致的 则需要把多余的裁剪掉
  • ubuntu虚拟机搭建hadoop完全分布式集群

    一 需要的工具 需要的工具我已经完成分享 需要的可以直接在网盘中下载 VMware15 Workstation Pro 提取码 pp12 ubuntu16 18 19 镜像 提取码 yfj0 Xshell Xftp 提取码 6ao9 jdk
  • 7月网络学习报告

    原始代码 import torch import torch nn as nn import torch nn functional as F import torchvision from torchvision import datas
  • C++ 基础知识

    C 基础知识 一 语法 1 指针常量 常量指针 2 内存模型 3 引用 4 C 中面向对象的三大特性 5 纯虚函数和抽象类 6 文件操作 7 模板与泛型 8 STL 一 语法 1 指针常量 常量指针 指针常量 顾名思义 指针是一个常量 所以
  • 开源C/C++网络库比较 ace &&bosst &&libEvent

    ACE是一个大型的中间件产品 代码20万行左右 过于宏大 一堆的设计模式 架构了一层又一层 使用的时候 要根据情况 看你从那一层来进行使用 在开源的C C 网络库中 常用的就那么几个 在业界知名度最高的 应该是ACE了 不过是个重量级的大家
  • 盘点:计算机专业含金量最高的证书!只需一种证书在手,从此不愁

    第一种证书 计算机技术与软件专业资格考试证书 计算机技术与软件专业资格考试证书 是由国家人力资源和社会保障部 工业和信息化部领导的国家级考试 该考试分为 5 个专业类别 并分设了高 中 初级专业资格考试 共 28 个资格的考核 也是用人单位
  • 微服务设计指导-hystrix参数介绍

    连接nacos的配置 nacos 服务地址 spring cloud nacos discovery server addr nacos server addr 注册到nacos上的命名空间 spring cloud nacos disco
  • MySQL数据库基础知识11,查询缓存

    目录 一 查询缓存是什么 二 MySQL如何判断缓存命中 三 使用查询缓存需谨慎 四 如何分析和配置查询缓存 五 InnoDB和查询缓存 MySQL进阶实战系列文章 哪吒精品系列文章 一 查询缓存是什么 MySQL查询缓存保存查询返回的完整
  • 【OpenCV图像处理】1.23 直方图(Histogram)均衡化

    文章目录 相关理论 代码 展示效果 相关理论 什么是直方图 图像直方图 是指对整个图像像在灰度范围内的像素值 0 255 统计出现频率次数 据此生成的直方图 称为图像直方图 直方图 直方图反映了图像灰度的分布情况 是图像的统计学特征 直方图
  • 逆水寒紫禁之巅服务器维护,逆水寒"紫禁之巅"服务器或将成历史?王思聪、PDD时代已渐行渐远...

    原标题 逆水寒 紫禁之巅 服务器或将成历史 王思聪 PDD时代已渐行渐远 从没有一款端游 能像 逆水寒 这样 能吸引如此多的社会名流入驻游戏 在游戏开测之初 打着 五年五亿巨制 网易最后一款端游 的口号 连王思聪 秦奋等名人都纷纷入坑 逆水
  • 龙书笔记(9)

    chap 9 字体 生成和输出文本的3种方式 ID3DXFont CD3DFont D3DXCreateText 1 ID3DXFont接口 能处理一些复杂的字体和格式 但是速度略慢 创建ID3DXFont对象 D3DXFONT DESC
  • 爬虫:爬取Github项目结构、任意文件下载存储

    文章目录 场景描述 爬取 Github 项目的文件结构 爬取 Laravel 8 x 文件结构 编写脚本 访问 Github 连接超时 requests 读取时间超时 爬取脚本 任意文件下载脚本 场景描述 需求 发现 任意文件下载漏洞 后
  • C++ 结构体(struct)的继承

    C 中的struct对C中的struct进行了扩充 它已经不再只是一个包含不同数据类型的数据结构了 它已经获取了太多的功能 struct能包含成员函数吗 能 struct能继承吗 能 struct能实现多态吗 能 有很多人应该已经知道这样一
  • C++ 保留2位小数

    include
  • 索尼 toio™ 应用创意开发征文|小巧机器,大无限,探索奇妙世界

    文章目录 前言 微型机器人的未来 toio 小机器人简介 toio 小机器人 创新功能一览 toio 小机器人 多领域的变革者 toio 小机器人贪吃蛇游戏 代码实现 写在最后 前言 当我们谈到现代科技的创新时 往往会联想到复杂的机器和高级
  • VS2015新建项目时,左侧面板空白的解决方法

    VS2015新建项目时 左侧面板空白的解决方法 解决办法是 1 进入 C Users 当前用户名 一般为administrator AppData Local Microsoft VisualStudio 14 0 2 删除或重命名 Com
  • HDU 1007 Quoit Design竟然要分治

    Quoit Design Time Limit 10000 5000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 34742 Accept
  • Class 08 - 数据的读取和保存 & R语言中的管道(pip)功能

    Class 08 数据的读取和保存 R语言中的管道 pip 功能 数据的读取和保存 data 加载R中的数据集 readr 功能包介绍 readr 包中读取文件的函数 read csv 读取 csv 文件 readxl 包读取Excel文件