分享

R语言中使用read.table函数读取文件数据方法详解

 爱读书的云朵 2021-01-07

在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语言的基本语法到具体的分析应用。将个人在实际工作中的知识分享给大家。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多