在R中,可以使用read.table()函数从具有多列表格形式的文件中读取数据。使用好它可以简单的从文本文件或CSV这种文件中读取数据。 read.table()函数语法格式read.table()函数的语法格式: read.table(file, header = FALSE, sep = '', quote = '''', dec = '.', row.names, col.names, as.is = !stringsAsFactors, nrows = -1,skip = 0, blank.lines.skip = TRUE, encoding = 'unknown',skipNul = FALSE) 下面使用下图所示的文件结构进行演示操作: 文件中的部分数据及存储格式 file参数要读取的文件名称,矩形表格数据的每行是文件中的一行,如果file参数中给定的文件名不是绝对路径,则文件名是相对于当前R的工作目录给出的。 read.table('gi.txt') 从文件中读取的结果 从结果可以看出若未给定分隔符sep参数时,read.table函数默认以空白分隔,且文件中的标题行被作为数据处理。同时,read.table函数依次给每列的变量名为v1, v2, ...。结果的第1列为行标题(序号)。 header参数逻辑值。数据文件中是否有标题行。如果header设置为TRUE,则要求第一行要比数据列的数量少一列。 read.table('gi.txt', header=TRUE) 指定header参数 col.names指定列名的向量。缺省情况下是又'V'加上列序构成,即V1,V2,V3...... read.table('gi.txt', header=TRUE, col.names=c('year', 'x', 'y')) 指定col.names参数 nrows整型数。用于指定从文件中读取的最大行数。负数或其它无效值将会被忽略。 指定nrows参数 row.names保存行名的向量。可以使用此参数以向量的形式给出每行的实际行名。或者要读取的表中包含行名称的列序号或列名字符串。在数据文件中有行头且首行的字段名比数据列少一个的情况下,数据文件中第1列将被视为行名称。除此情况外,在没有给定row.names参数时,读取的行名将会自动编号。可以使用row.names = NULL强制对行进行编号。 使用row.names参数 从图中所示的结果可以看出,默认情况下的序号被替换为指定的Rn形式了,paste0函数是将字符串连接在一起,且连接的字符串结果中间没有分隔符。 skip整型数。读取数据时忽略的行数。 使用skip参数的情况 从结果可以看出,前10行数据被忽略了。指定skip参数时应该设置col.names参数,否则第一行数据将作为列名处理。 sep参数数据的分隔符。默认sep=''。默认情况下,read.table()函数以空白作为数据的分隔符。若读取CSV文件,则需要指定sep=','。 blank.lines.skip逻辑值,此参数值设置为TRUE时,数据文件中的空白行将被忽略。默认值为TRUE。 encoding假定输入字符串的编码方式。 skipNul逻辑值。是否忽略空值。默认为FALSE。 ------------------------- 欢迎关注本号。本号将持续更新有关R语言方面的文章。内容由浅入深,从R语言的基本语法到具体的分析应用。将个人在实际工作中的知识分享给大家。 |
|
来自: 爱读书的云朵 > 《数据获取、统计及处理》