《机器学习与R语言(原书第2版)》一2.2 用R管理数据

简介: 当处理大量数据集时,面临的挑战包括收集、准备和管理来自各种不同来源的数据。尽管通过学习后面章节中的真实世界的机器学习任务,我们会深入地涉及数据准备、数据清理和数据管理,但本节重点讲述基本的R数据导入和导出功能。

本节书摘来自华章出版社《机器学习与R语言(原书第2版)》一书中的第2章,第2.2节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 用R管理数据

当处理大量数据集时,面临的挑战包括收集、准备和管理来自各种不同来源的数据。尽管通过学习后面章节中的真实世界的机器学习任务,我们会深入地涉及数据准备、数据清理和数据管理,但本节重点讲述基本的R数据导入和导出功能。

2.2.1 保存、载入和移除R数据结构

当你花费了很长时间把某个数据框转换成你所需要的数据格式时,你不必每次重新打开R会话从头开始重复前面的工作。要想把一种特定的数据结构保存到一个文件中,使它以后能重新载入或者把这种数据结构转移到另一个系统中,可以用save()函数。save()函数把R数据结构写到由file参数设定的位置。R数据文件有一个文件扩展名.RData。
如果我们有3个对象x、y和z,你希望将它们保存在一个永久文件中。不管它们是向量、因子、列表或者数据框,可以用下面的命令把它们保存到名称为mydata.RData的文件中:
e1
load()命令可以重新创建保存在以.RData为扩展名的文件中的任何数据结构。为了载入保存在前面代码中的mydata.RData文件,只需要输入:
e2
这将重新创建x、y和z数据结构。
要特别小心你正在载入的数据结构!你用load()命令正在导入的文件中所存储的所有数据结构都将载入你的工作区,即使它们会覆盖工作区中其他一些你正在使用的东西。
如果你需要立即结束当前的R会话,save.image()命令将会把你所有的会话写入一个叫作.RData的文件中。默认情况下,R将在下次启动时寻找这个文件,上次R结束时的R会话将会重现,就像你离开R时一样。
在R会话工作一段时间后,可能积累了大量的数据结构。列表函数ls()返回一个内存中当前所有数据结构的一个向量。例如,如果你按照本章中的代码操作,那么ls()函数将返回:
e3

在退出会话时,R将自动从内存中删除这些数据结构,但是对于大的数据结构,你可能希望尽快释放内存。删除函数rm()就是用于删除数据结构。例如,为了删除m和subject1对象,简单地输入:
e4
也可以用一个由需要删除的对象名称构成的字符向量作为函数 rm()的参数。下面的命令清除整个R会话中的对象。
e5
在执行上述命令时必须特别小心,因为在对象删除之前没有提示。

2.2.2 用CSV文件导入和保存数据

公开的数据集通常存储在文本文件中。文本文件几乎可以在所有的计算机和操作系统中阅读,这种格式几乎全球通行。由于像Microsoft Excel这样的电子表格数据操作容易便捷,所以文本格式文件也能从这样的程序中导入或者导出。
表格数据文件(tabular或者table)采用矩阵形式的结构,这种形式数据的每一行表示一个案例,每个案例有相同数量的特征。每一行的特征值由一个预先定义的称为分隔符的符号来区分。通常情况下,表格数据文件的第一行给出数据每一列的名称。该行称为标题行。
最常用的表格文本文件格式可能是逗号分隔值(Comma-Separated Value,CSV)文件。根据名字可知,这种文件格式使用逗号作为分隔符。CSV文件能在很多常用的应用程序内导入和导出。一个表示先前构建的医疗数据集的CSV文件可能像下面这样存储:
e6
给定一个位于R工作目录中的命名为pt_data.csv的病人数据文件,可以使用read.csv()函数把这个文件载入R中:
e7
这个命令将把CSV文件读入名为pt_data的数据框中。就像先前在构建数据框时那样,我们需要使用stringsAsFactors = FALSE参数来阻止R把所有的文本变量转换成因子。这个转换的步骤最好由你而不是由R来执行。
如果数据集在R工作目录之外,你要详细列出CSV文件的完整路径(例如,当调用read.csv()函数时应该使用/path/to/mydata.csv。)
默认情况下,R假设CSV文件包含一个标题行,标题行列出了数据集中特征的名字。如果一个CSV文件没有标题行,那么需要指定选项header = FALSE,就像下面的命令显示的那样,R用V1、V2等默认值来指定属性名:
e8
read.csv()函数是read.table()函数的一个特例。read.table()函数能读取具有多种不同格式的表格数据,包括其他的分隔形式,比如制表符分隔的值(Tab-Separated Value,TSV)。要想了解更多关于read.table()函数族的信息,用命令?read.table来查询R的帮助页面。
要想把一个数据框保存成CSV文件,需要使用write.csv()函数。如果数据框名是pt_data,只需要输入:
w9
这就将把一个名为pt_data.csv的文件保存到R工作目录中。参数row.names会覆盖R的默认设置,它输出CSV文件中的行名称。除非数据框有行名,否则这种输出设置是不必要的,它只会增加输出文件的大小。

相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
R语言中的机器学习库:caret与mlr的深度解析
【9月更文挑战第2天】Caret和mlr是R语言中两个非常重要的机器学习库,它们在数据预处理、模型构建、调优和评估等方面提供了丰富的功能。Caret以其易用性和集成性著称,适合初学者和快速原型开发;而mlr则以其全面性和可扩展性见长,适合处理复杂的机器学习项目。在实际应用中,用户可以根据具体需求和项目特点选择合适的库进行开发。无论是学术研究、商业智能还是教育场景,这两个库都能为数据科学家和机器学习爱好者提供强大的支持。
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
4月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
5月前
|
机器学习/深度学习 数据采集 运维
智能运维:利用机器学习优化IT基础设施管理
在数字化浪潮的推动下,企业对IT系统的依赖程度日益加深。传统的运维模式已经难以满足现代业务的需求,尤其是在处理海量数据和复杂系统时显得力不从心。本文将探讨如何通过机器学习技术,实现智能化的运维管理,从而提升效率、减少故障时间,并预测潜在问题,保障业务的连续性和稳定性。 【7月更文挑战第27天】
69 10
|
5月前
|
机器学习/深度学习 人工智能 算法
没想到!AlphaZero式树搜索也能用来增强大语言模型推理与训练
【7月更文挑战第26天】Xidong Feng等研究人员提出了一项创新方法,通过采用AlphaZero式的树搜索算法来增强大语言模型(LLMs)的推理与训练能力。这项技术,称为TS-LLM(Tree-Search for LLMs),将LLMs的解码过程视为搜索问题,并运用AlphaZero的树搜索来指导这一过程。TS-LLM不仅提升了模型的通用性和适应性,还在多个任务中实现了显著的性能提升。此外,它能在训练阶段指导LLMs学习更优的解码策略。尽管如此,TS-LLM依赖于高质量的预训练LLM,并面临较高的计算成本挑战。[论文](https://arxiv.org/abs/2309.17179)
90 5
|
5月前
|
机器学习/深度学习 运维 监控
智能化运维的崛起:机器学习在IT管理中的实践与挑战
本文深入探讨了智能化运维领域,特别是机器学习技术在IT管理中的应用。文章首先介绍了智能化运维的概念及其重要性,随后详细阐述了机器学习在故障预测、自动化响应和系统优化中的作用。同时,文章也指出了实施智能化运维时可能遇到的技术挑战和数据治理问题,并提出了相应的解决策略。最后,通过具体案例分析,展示了机器学习技术如何在实际运维中提高系统稳定性和效率。
|
5月前
|
机器学习/深度学习 边缘计算 运维
智能化运维的崛起:机器学习在IT基础设施管理中的应用
随着企业对IT基础设施的依赖日益加深,传统的运维模式已难以满足现代业务的需求。本文将探讨智能化运维的概念,分析机器学习技术如何革新IT基础设施的管理方式,提升运维效率,并预测其在未来运维领域的发展趋势。通过具体案例,本文旨在展示智能化运维的实践价值及其对企业数字化转型的推动作用。
64 0
|
2月前
|
机器学习/深度学习 数据采集 人工智能
R语言是一种强大的编程语言,广泛应用于统计分析、数据可视化、机器学习等领域
R语言是一种广泛应用于统计分析、数据可视化及机器学习的强大编程语言。本文为初学者提供了一份使用R语言进行机器学习的入门指南,涵盖R语言简介、安装配置、基本操作、常用机器学习库介绍及实例演示,帮助读者快速掌握R语言在机器学习领域的应用。
97 3
|
2月前
|
机器学习/深度学习 并行计算 数据挖掘
R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域
【10月更文挑战第21天】R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域。本文将介绍R语言中的一些高级编程技巧,包括函数式编程、向量化运算、字符串处理、循环和条件语句、异常处理和性能优化等方面,以帮助读者更好地掌握R语言的编程技巧,提高数据分析的效率。
56 2
|
3月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。