R语言在处理过程中大致都经历着从读入文件-->代码运算-->将结果文件保存。首先我们就要学会如何读取各式各样的文件。
1、读取纯文本文件
以.txt为后缀的纯文本文件需要用到read.table函数,函数用法很多,详情请输入?read.table。若待读取文件与R语言脚本在同一个工作路径下,则选取一个变量名,直接输入"文件名+后缀名"将读取的文件数据赋值给这个变量即可。R中默认会给每一行添加上行号。
x<-read.table("input.txt")
若担心文件太多导致被结果数据刷屏,可以用head()和tail()函数截取数据固定函数的头部和尾部,Windows系统默认是六行,Linux系统默认是十行;可以使用n=数字来改变截取的行数。
head(x,n=10) #截取数据前十行
tail(x,n=10) #截取数据后十行
head()和tail()函数对查看大规模数据文件的格式尤为重要。
若文件不在当前工作目录下,可以使用文件的全路径,既可以使用绝对路径也可以使用相对路径。要定位到某个具体的文件而非文件夹,否则会报错。需要知道的是Windows系统默认使用*,在R中有两种选择(1)使用\,例子路径为C:\Users\Administrator\Desktop\R\Rdata\input.txt(2)使用/,例子路径为C:/Users/Administrator/Desktop/R/Rdata/input.txt*
x<-read.table("C:/Users/Administrator/Desktop/R/Rdata/input.txt")
1.1、read.table函数中参数设置
1.1.1、sep参数:用来指明数据文件的分隔符,不指明则默认是空格。不同的文件分隔符不同,.csv文件用,分隔,从excel表格中复制的数据用制表符分隔(\t代表制表符)。想要查看数据文件的分隔符,windows系统则可以用记事本直接打开文件查看。
x<-read.table("input.csv",sep=",")
1.1.2、header参数:读取文件时是否将第一行数据作为变量的名称,而不是当成数据值来处理。header=TRUE时,则第一行作为变量名称。
1.1.3、skip参数:有时候数据文件的开头会包含一些表明数据来源的文本信息或注释信息,这不利于我们直接读取有效数据,这时就会用到skip参数,有几行注释信息skip的值就等于几,不过我没用skip参数试了一下也并没有显示注释信息。[手动狗头.jpg]
1.1.4、na.strings参数:指定数据文件中的缺失值为NA。文件中的缺失值可以是各种各样的字符,但是R语言中可识别的缺失值只有NA,这样才能方便后续的数据处理。
1.1.5、 stringsAsFactors参数:将数据文件中的一些字符串不自动转化成因子。R语言中是默认将字符串转化为因子的,当 stringsAsFactors=FALSE时,则不自动转化。
1.2、read函数读取其他类型文件
read.csv函数:用于读取以,为分隔符的文件
read.csv2函数:用于读取以;为分隔符的文件
read.delim函数:用于读取以制表符(\t)为分隔符的文件
read.fwf函数:用于读取固定宽度的文件
read.fwf("fwf.txt",widths=c(2,3,4)) #widths指明每列截取字符的个数