第11章 数据库操作

在前面的章节中,我们已经学习了面向对象编程的基本概念,包括类和方法,以及它们在R中是如何通过泛型函数执行方法分派而连接起来的。另外,也掌握了S3、S4、RC和R6的基本用法,包括如何定义类和泛型函数,以及对特定的类实施相应的方法。

在掌握了 R 的大部分重要特性之后,我们继续深入并探讨更实用的主题。本章开始讨论怎样用 R 来操作数据库,从数据库中提取数据大概是许多数据分析项目的第一步。具体来说,包括以下内容:

  • 了解关系型数据库
  • 使用SQL工具,例如通过SQLite、MySQL对关系型数据库进行查询
  • 操作非关系型数据库,如MongoDB和Redis

在前面的章节中,我们使用一系列内置函数,例如 read.csv( )read.table( ) 从分隔符分隔的文件(例如csv格式)中读取数据。然而,当数据文件很大时,这些存储方式未必是最好的。

为什么文本格式不再适用呢?主要有如下3个理由。

1.read.csv( ) 这类函数主要用于将整个文件读到内存中,成为R中的一个数据框。如果数据量太大,以至于不适合计算机内存时,这个方法就失效了。

2.虽然数据集很大,但是通常我们并不需要将整个数据集都载入内存来完成任务。相反,往往只需根据某些条件,提取原数据集的一个子集。内置的数据读取函数并不能对csv文件进行查询。

3.数据集在不断更新中,即我们需要定期地向数据集中插入记录。如果采用csv格式,新添数据将会非常不便,尤其是想在文件的中间部分插入新记录,又要保持其他记录的原有顺序时,将会很棘手。

针对以上情形,最好的方案就是使用数据库。它能有效地应对超出计算机内存容量的数据存储问题。还可以根据用户提供的条件,对数据库中的数据进行查询,这也使在数据库中更新现有记录和插入新数据的操作变得简便。 ...

Get R编程学习指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.