详解R语⾔中scan函数各参数的含义
在R语⾔中可以使⽤scan()函数从键盘或⽂件中读取数据到向量或列表中。
scan()函数的语法形式
scan()函数的语法格式如下:
scan(file = "", what = double(0), nmax = -1, n = -1, sep = "",
quote = if(identical(sep, "\n")) "" 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 = "", allowEscapes = FALSE,
fileEncoding = "", encoding = "unknown",text, skipNul = FALSE)
是不是看到这些东西,有些懵圈了,不⽤着急,参数虽然多,实际上常⽤的并不是很多。这篇⽂章先详细介绍⼀下各参数的含义,在以后的⽂章中将具体介绍如何使⽤这个函数从键盘或⽂件中获取数据。
参数含义描述
•file
file参数⽤于指定要读取⽂件的路径和名字,如果为空或"",则是要从键盘中获取数据。
如果指定的⽂件的名字使⽤的是相对路径,则默认是从当前⼯作⽬录中寻⽂件(当前⼯作⽬录可以使⽤getwd()函数获取到);
如果指定了绝对路径,则scan()函数要按照绝对路径读取⽂件。
•what
what⽤于给出要读取的数据的类型,⽀持的数据类型包括:logical, integer, numeric, complex, character, raw以及list.•nmax
是⼀个整型值,⽤于指定要读取数据的最⼤数量,如果what被指定为列表(list),则nmax表⽰要读取的最⼤记录数或⾏数,如果忽略nmax参数,或该参数被指定为⾮负整数,或者该参数被设定为⽆效值时(同时,nlines参数没有被设定为负数时),scan函数将会读取到该⽂件的末尾。
•n
是⼀个整型值,要读取的数据的最⼤数量,默认情况下没有限制。若指定⽆效的值,将会被忽略。
•sep
sep参数是⽤于指出⽂件中数据的分隔符,scan默认数据是以空⽩进⾏分隔,另外,也可以指定其它单个字符作为数据域的分隔符
•quote
⽤于指定包围字符串的字符,该参数应该是⼀个单字符。
•dec
⽤于表⽰⼩数数点的字符,该参数只能是包含单个字符的字符串或零长度的字符串。默认为“.”。
•skip
⽤于指定读取数据时,忽略⽂件前⾯的⾏数。
•nlines
指定要读取⽂件中数据的最⼤⾏数。
•na.strings
字符向量。⽤于指定表⽰缺失数据时的字符串,默认为NA。在逻辑型、整数型、数值型和复数型数据域中,空⽩域也被看作缺失值。
•flush
是⼀个逻辑值,默认为FALSE。如果该参数设置为TRUE,则scan()函数读取完指定列数后将转到下⼀⾏。这允许⽤户在最后⼀个字段后⾯添加注释。
•fill
逻辑值。如果参数值设置为TRUE时,当⾏中的字段值少于字段数时,将以空⽩填充。
•strip.white
在sep参数已指定的情况下,如果为TRUE,则删除字符型字段前后多余的空格。但包含在引⽤中的空⽩不会被删除,同时数值型字段值前后的空⽩在任何情况下都会被去掉。
•quiet
是⼀个逻辑值,当设置为FALSE时,scan()函数将输出⼀⾏信息,⽤于说明读取了哪些项的信息。
•blank.lines.skip
是⼀个逻辑值,如果设置为TRUE,将忽略空⽩⾏
•multi.line
是⼀个逻辑值。只⽤于what参数是⼀个列表型参数时。当设置为FALSE时,每个记录的字段都在⼀⾏中。
•comment.char
指定注释开始的字符。⼀⾏中以这个字符开头的部分将被忽略。默认关闭此项。
•allowEscapes
该参数是⼀个逻辑值,默认值为FALSE。表⽰在⼀个引⽤起来的字符串中,类似“\n”这样的字符被解释为转义字符还是按原样输出(字⾯意义或逐字字符串)。若不在引号中,这样的字符将视为字段分隔符。
•fileEncoding
字符串类型,指定⽂件的编码⽅式。如果指定了该参数,则⽂本数据按照指定的格式重新编码。
•encoding
对输⼊的⾮ASCII字符按照指定的编码格式编码。
空值是指零长度的字符串•text
字符串类型。if file is not supplied and this is, then data are read from the value of text via a text connection.
•skipNul
逻辑值。是否忽略空值。
-------------
欢迎关注本号,本号将持续更新R语⾔⽅⾯的⽂章,内容由浅⼊深,从R的基本语法到具体的数据分析应⽤。如果你喜欢,请赞个。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论