R语言 从文件中读取表格式数据
通常情况下,需要读取和处理的数据已经存储在一个文件中,但存在于R环境之外。因此,在这种情况下,将数据导入R是一项强制性任务。R支持的格式有CSV、JSON、Excel、Text、XML等。大多数时候,要读入R的数据都是表格式的。用于读取此类数据的函数以行和列的形式存储,在R中导入数据并返回数据框。数据框在R中是首选,因为在R中从数据框的行和列中提取数据用于统计计算任务比其他数据结构更容易 。
从文本文件中读取数据
用于从文本文件读取表格数据的函数是 read.table()
参数
- file: 指定文件的名称。
- header: header是一个逻辑标志,表示第一行是否是包含数据的标题行。
- nrows: 指定数据集中的行数。
- skip: 帮助从头开始跳过行。
- colClasses: 它是一个字符向量,表示数据集中每一列的类别。
- sep: 它是一个字符串,表示列的分隔方式,即用逗号、空格、冒号、制表符等。
对于小型或中等规模的数据集,我们可以调用 read.table() ,不需要任何参数。R会自动计算出行数、列数、不同列的类别、跳过以#(注释符号)开头的行等。如果我们指定参数,会使执行速度更快,效率更高,但在这里,由于数据集很小,所以不会有太大的区别,因为它已经很快速和高效了。
例如:
让我们在当前目录下保存一个表格式的数据文件GeeksforGeeks.txt,其数据如下:
输出:
从CSV文件中读取数据
read.csv( ) 函数用于读取.csv文件,这是一种非常常见的电子表格应用程序(如Microsoft Excel)遵循的格式。 read.csv() 与 read.table() 类似,只是 read.csv() 函数的默认分隔符是逗号,而 read.table() 的默认分隔符是空格。 read.csv() 指定的另一件事是,它总是指定header等于true。
在读取巨大的文件时,需要记住的一点是计算它存储数据集所需的大致内存。这是为了确保它不超过我们正在工作的设备中的可用内存。所需的内存可以按以下方式计算。
另一个可以减少时间消耗的措施是加入colClasses参数,这样R就不必搜索数据集的每一列的类别。如果事先指定行数,即nrows,那么将有助于减少内存的使用。
例子:
让我们在当前目录下保存一个表格式的数据文件GeeksforGeeks.csv,其数据如下:
输出 :
从JSON文件中读取数据
fromJSON() 函数用于转换JSON数据为R对象。这个函数需要安装rjson包。这可以通过以下命令完成。
例如:
让我们在当前目录下保存一个.json文件GeeksforGeeks.json,内容如下。
输出:
输出:
读取Excel工作表
R函数 read.xlsx() 用于将Excel工作表的内容读入R数据框。这个函数需要安装xlsx包。这可以通过使用以下命令来完成。
例子:
让我们在当前目录下保存一个Excel文件gfg.xlsx,其内容如下。
输出
在这里,我们可以看到 read.xlsx() 返回了一个data.frame作为输出。
但如果要读取大型数据集(有超过100000个单元),那么最好使用read.x lsx2() 。 read.xlsx2() 在大型文件上比 read.xlsx( )工作得更快。 read.xlsx2( )的结果将不同于 read.xlsx() ,因为 read.xlsx2() 内部使用 readColumns() ,它是为表格式数据定制的。