16.1.2 案例一数据读取

16.1.2 案例一数据读取

数值型数据和文本型数据分析的第一步都是数据的读取,将数据读取到工作空间才能对数据进行后续的操作。我们要读取的是训练集中的数据,但是这些数据分布在20个文件夹中,而且每条数据都是一个独立的文件,因此读取文件时首先要获取每个文件的路径,然后才能对数据进行读取。

首先加载需要用到的包,在本次读取中,我们还会介绍几个新的函数以及它们的使用方式:

然后设定一个基准路径,即20news-bydate-train文件夹的路径,接下来逐步获取20个文件夹以及每个文件的路径:

R语言中没有能够读取整个文件夹中所有文件的函数,但是我们可以定义一个函数实现此功能:

上述代码讲解如下:首先第一行代码表示获取文件夹中所有文件的路径,并将其存储在数据框中;其次使用mutate()函数在数据框中创建新列,使用map()函数依次读取每条数据,map()是循环函数,它依次读取每个路径下的数据;最后使用transmute()函数选取text,并增加id列。函数中使用了大量管道操作符,如果不了解变量的传输过程,可以将函数分解逐步实现。

依次读取20个文件夹中的数据并将其存储在一个数据框中:

以下命令可以查看数据的基本情况:

数据基本情况的查询结果如图16-3所示。

图16-3 数据基本情况的查询结果

在图16-3中,newsgroup列指明了数据的来源(主题),id列则是每条数据的唯一标识。