vlambda博客
学习文章列表

R语言基础--数据的输入

【前言】

    R可从键盘、文本文件、Excel、流行的统计软件、特殊格式的文件,以及多种关系型数据库中导入数据。


键盘输入数据


    R中的函数edit()会自动调用一个允许手动输入数据的文本编辑器,步骤如下:

    1. 创建一个空数据框(或矩阵),其中变量名和变量的模式需与预期的最终数据集一致;

    2. 针对这个数据对象调用文本编辑器,输入数据,并将结果保存回此数据对象中。

    类似于age=numeric(0)的赋值语句创建一个指定模式但不含实际数据的变量。编辑的结果需要赋值回对象本身,函数edit()事实上是在对象的一个副本上进行操作的,如果不将其赋值到一个目标,所有修改会全部丢失。单击列的标题,可以用编辑器修改变量名和变量类型(数值型、字符型),可通过单击未使用列的标题来添加新的变量。mydata= edit(mydata)的更简洁的等价写法是fix(mydata)。


从带分隔符的文本文件导入数据


    可以使用read.table()函数,此函数可读入一个表格格式的文件并将其保存为一个数据框,语法如下:

data= read.table(file,header = TRUE,sep= "delimiter",row.names='name')

    其中,file是一个带分隔符的ASCII文本文件,header表示文件是否在首行包含变量名,sep指定分隔行内数据的分隔符,row.names指定一个或多个行标记符(指定某变量为行名,该列即不再有标签,导致数据会少一列)。

    默认情况下,字符型变量将转换为因子。设置选项stringsAsFactors=FALSE,将停止对所有字符型变量的转换,或者使用选项colClasses指定每一列的类,如logical(逻辑型)、numeric(数值型)、characer(字符型)、factor(因子)。


导入Excel数据


    读取一个Excel文件可以在Excel中将其导出为一个逗号分隔文件csv,再使用前文描述的方式将其导入R中。或者可以使用xlsx包,函数read.xlsx()导入一个工作表到一个数据框中:

    read.xlsx(file, sheetIndex, sheetName, rowIndex)

    read.xlsx()允许指定工作表中特定的行(rowIndex)和列(colIndex),配合上对应每一列的类(colClasses)。对于大型的工作簿,可以使用函数read.xlsx2(),该函数用Java来运行更加多的处理过程,可获得可观的质量提升。


往期文章: