s.skip,strip.white = FALSE, blank.lines.skip = TRUE,comment.char =
'#')
file 文件名(包在''内,或使用一个字符型变量),可能需要全路径(注意即使是在Windows下,符号n
也不允许包含在内,必须用/替
换),或者一个URL链接(
http://...)(用URL对文件远程访问)
header 一个逻辑值(FALSE or TRUE),用来反映这个文件的第一行是否包含
变量名
sep 文件中的字段分离符,例如对用制表符分隔的文件使用sep='nt'
quote 指定用于包围字符型数据的字符
dec 用来表示小数点的字符
row.names 保存着行名的向量,或文件中一个变量的序号或名字,缺省时行号取
为1, 2, 3, . . .
col.names 指定列名的字符型向量(缺省值是:V1, V2, V3, . . . )
as.is 控制是否将字符型变量转化为因子型变量(如果值为FALSE),或者仍
将其保留为字符型(TRUE)。as.is可以是逻辑型,数值型或者字符
型向量,用来判断变量是否被保留为字符。
na.strings 代表缺失数据的值(转化为NA)
colClasses 指定各列的数据类型的一个字符型向量
nrows 可以读取的最大行数(忽略负值)
skip 在读取数据前跳过的行数
check.names 如果为TRUE,则检查变量名是否在R中有效
fill 如果为TRUE且非所有的行中变量数目相同,则用空白填补
strip.white 在sep已指定的情况下,如果为TRUE,则删除字符型变量前后多余的
空格
blank.lines.skip 如果为TRUE,忽略空白行
comment.char 一个字符用来在数据文件中写注释,以这个字符开头的行将被忽略
(要禁用这个参数,可使用comment.char = '')
read.table的几个变种因为使用了不同的缺省值可以用在几种不同情况
下:
read.csv(file, header = TRUE, sep = ',', quote='\'', dec='.',
fill = TRUE, ...)
read.csv2(file, header = TRUE, sep = ';', quote='\'',
dec=',',
fill = TRUE, ...)
read.delim(file, header = TRUE, sep = '\t', quote='\'',
dec='.',
fill = TRUE, ...)
read.delim2(file, header = TRUE, sep = '\t', quote='\'',
dec=',',
fill = TRUE, ...)
函数scan比read.table要更加灵活,它们的区别之一是前者可以指定变
量的类型,例如:
> mydata <- scan('data.dat', what = list('', 0, 0))
读取了文件data.dat中三个变量,第一个是字符型变量,后两个是数值
型变量。另一个重要的区别在于scan()可以用来创建不同的对象,向量,矩
阵,数据框,列表. . . 在上面的例子中,mydata是一个有三个向量的列表。
在缺省情况下,也就是说,如果what被省略,scan()将创建一个数值型向
量。如果读取的数据类型与缺省类型或指定类型不符,则将返回一个错误信
息。这些选项在下面进行说明。
scan(file = '', what = double(0), nmax = -1, n = -1, sep =
'',
quote = if (sep=='') '' else ''\'', dec = '.',
skip = 0, nlines = 0, na.strings = 'NA',
flush = FALSE, fill = FALSE, strip.white = FALSE, quiet =
FALSE,
blank.lines.skip = TRUE, multi.line = TRUE, comment.char =
'')
file 文件名(在''之内), 可能包含它的路径(符号n 不允许使用,必须用/替代, 即使是在Windows下面) ,
或者使用一个URL链接(
http://...);如果¯le='',数据从键盘输入(使用一个空白行终止输入)
what 指定数据的类型(缺省值为数值型)
nmax 要读取数据的最大数量,如果what是一个列表,nmax则是可以读取
的行数(在缺省情况下,scan读取到文件最末端为止的所有数据)
n 要读取数据的最大数量(在缺省情况下,没有限制)
sep 文件中的字段分隔符
quote 用来包围字符型值
dec 用来表示小数点的字符
skip 在读取数据前跳过的行数
nlines 要读取的行数
na.string 表示缺失数据的字符串(转化为为NA)
flush
一个逻辑值,如果为TRUE,当读取完指定列数后scan将转到下一行(这样就允许用户在数据文件中添加注释,即添加在指定列数之后)
fill 如果为TRUE,且非所有的行中变量数目相同,则用空白填补
strip.white 在sep已指定的情况下,如果为TRUE,则删除字符型变量前后多余的空格
quiet 一个逻辑值,如果为FALSE,scan显示一行信息说明哪些字段被读取
blank.lines.skip 如果为TRUE,忽略空白行
multi.line 当what是一个列表时,若为FALSE则表示列表中每个个体的所有变量都在同一行中
comment.char 指定注释开始字符,一行中以这个字符开头的部分将被忽略(缺是禁用此选项)
函数read.fwf可以用来读取文件中一些固定宽度格式的数据:
read.fwf(file, widths, sep='\t', as.is = FALSE,skip = 0, row.names,
col.names, n = -1, ...)
除了widths用来说明读取字段的宽度外,
选项与read.table()基本相同。举例来说,如果在一个名为data.txt的文件中有一组如右所示的数据,可以读取这些数据用下面的命令:
A1.501.2
A1.551.3
B1.601.4
B1.651.5
C1.701.6
C1.751.7
> mydata <- read.fwf('data.txt', widths=c(1, 4, 3))
> mydata
V1 V2 V3
1 A 1.50 1.2
2 A 1.55 1.3
3 B 1.60 1.4
4 B 1.65 1.5
5 C 1.70 1.6
6 C 1.75 1.7