使用R语言的时候,如果是少量数据,不妨使用c()或其他函数进行创建;但是对于大量数据,最好还是先通过其他更方便的软件创建数据文件,然后使用R读入这个文件。前文说,.csv是非常好的数据文件格式,跨平台支持非常好。我在Excel或者SPSS中创建的数据,只要存为csv格式,就可以使用几乎任何数据处理软件对这些数据进行处理了。使用通用格式在多人合作、不同版本兼容等常见行为中,优势十分明显。另外,之所以使用不同的数据处理软件,第一,可以取长补短。比如有些工作SPSS很复杂的,可以用R语言几行命令搞定。第二,可以进行软件间处理结果对照,发现问题。R语言中读取外部文件的最基本函数是read.table(),先介绍read.table(),然后再介绍专门用来读csv的read.csv()。敲入?read.table命令,就看到了关于数据输入函数的说明。对read.table,使用格式是这样的;read.table(file,header=FALSE,sep="",e="\"'",dec=".",ronames,col.names,as.is=!stringsAsFactors,na.strings="NA",colClasses=NA,nrows=-1,skip=0,check.names=TRUE,fill=!blank.lines.skip,strip.white=FALSE,blank.lines.skip=TRUE,comment.char="#",allowEscapes=FALSE,flush=FALSE,stringsAsFactors=default.stringsAsFactors(),fileEncoding="",encoding="unknown",text)参数很多,最常用的也就几个,重写如下:read.table(file,header=FALSE,sep="",e="\"'",dec=".",skip=0,strip.white=FALSE,blank.lines.skip=TRUE,comment.char="#")file表示要读取的文件。file可以是①绝对路径或者相对路径,但是一定要注意,因为在R语言中\是转义符,所以路径分隔符必须写成\\,比如“C:\\myfile\\myfile.txt”。②可以使剪切板的内容。③使用file.choose(),弹出对话框,让你选择文件位置。强烈推荐使用第三种方法,免去了记忆和书写文件路径的麻烦,特别是能够避免因数据文件位置移动带来的错误!例如:read.table(file.choose(),...)。header来确定数据文件中第一行是不是标题。默认F,即认为数据文件没有标题,也即认为第一行就开始是数据了!例如:姓名年龄收入小六12350如果header=F,读进来的第一行数据是“姓名年龄收入”,header=T,读进来的第一行是“小六12350”。sep指定分隔符,默认是空格。e是引号,默认就是双引号。dec是小数点的表示,默认就是一个点。skip是确定是否跳过某些行。strip.white确定是否消除空白字符。blank.lines.skip确定是否跳过空白行。comment.char指定用于表示注释的引导符号。一般情况下,我们只需要默认值就够了。下面是一个简单的例子,本例子中,首行是标题而不是数据,使用\t进行分割而不是空格。读取后的数据变量设为mydata。所以,可以写出读取方式为:mydata<-read.table(file.choose(),header=T,sep="\t")其中,T和TRUE的效果是一样的,正如F和FALSE的效果是一样的。和read.table有所不同的,是read.csv的默认参数有别。注意看,header和sep的默认值。read.csv(file,header=TRUE,sep=",",e="\"",dec=".",fill=TRUE,comment.char="")因为csv就是逗号分割的意思,当然sep必须是逗号。header也是默认有标题的。fill是默认填充的,即遇到行不相等的情况,空白域自动添加既定值。如果使用默认的设置,可以写出:mydata2<-read.csv(file.choose())十分简单。对于读取剪切板的方式,不推荐使用。我们之所以使用读取文件,就是增加程序的可复用性,而读剪切板显然是破坏了这种初衷的。因此,不到万不得已,尽量使用文件路径或者文件选择的形式。对于其他软件的专用格式,是要使用扩展包的,比如常见的foreign包引入之后,可以读Minitab,S,SAS,SPSS,Stata,Systat,dBase等软件专用格式的数据文件。这个操作此处就不谈了。最后,提醒大家一定要勤使用、多使用help。RStudio的布局,让help查看十分便捷。很多时候,忘了某个命令怎么玩,只要在命令窗口输入“?某函数”,就可以边看右侧的提示,边在左侧命令栏继续工作,只需要左右晃动几下眼睛而已,将不会再为命令单词怎么拼、共有哪些参数可选等问题而困扰!看图: