read.table(file, header = FALSE, sep = "", quote = "\"'",
dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),
row.names, 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 = FALSE,
fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)
名词解释:
file
读取的文件路径或URL地址
header
是否以文件的第一行作为列名
默认值为FALSE 即不把第一行当中列名
sep = ""
表示字段分隔符为空字符。当字段分隔符为空字符时,read.table函数会将连续的空格或制表符作为字段分隔符来读取数据文件。制表符 键盘上的tab键,按tab意味着输出一个制表符
quote="\"'"
表示把文件中带双引号、单引号的当作字符串处理
dec='.'
表示文件中带点的小数字可被识别为小数字
numerals
用于指定如何处理数据中的无效数字。该参数接受一个包含三个选项的向量numerals = c("allow.loss", "warn.loss", "no.loss"),各选项的含义如下:
- allow.loss:允许出现无效数字,并将其转换为NA。
- warn.loss:允许出现无效数字,但在转换为NA时会发出警告。
- no.loss:不允许出现无效数字,遇到无效数字时会返回错误。
通过使用这些选项,可以根据需要选择在出现无效数字时的处理方式。
write.table中默认为allow.loss
row.names col.names
分别表示给行、列取名
as.is = !stringsAsFactors
是否将字符型变量转换为因子变量,默认为!stringsAsFactors,即不转换为因子变量
na.strings = "NA"
缺失字符串的处理方式 若有缺失则填充na
colClasses
col 列的缩写 classes 类型
用于指定读取各列数据的类型。它可以是一个向量,向量的长度与数据文件的列数相匹配,每个元素表示对应列的数据类型。
常用的数据类型包括:
- "character":字符型
- "numeric":数值型
- "integer":整型
- "logical":逻辑型
- "factor":因子型
如果某列的数据类型无法自动推断或者需要将数据读取为特定的类型,可以使用colClasses参数来指定。例如,如果有一个数据文件,其中第一列应该被读取为字符型,第二列应该被读取为数值型,可以使用colClasses参数指定为 colClasses = c("character", "numeric")。
当指定了colClasses参数后,read.table函数会按照给定的数据类型读取相应的列数据,而不会再自动推断列的数据类型。
本文中colClasses='NA'则表示不对任何列指定具体的数据类型。这意味着read.table函数会自动根据数据文件的内容来推断每一列的数据类型。
nrows
表示读取的行数 默认是-1 即读取所有行数
当nrows参数设置为正整数值。设置为正整数值n时,read.table函数将读取前n行数据并将其存储到一个数据框中。如想要读取文件的前10行,可以将nrows参数设置为10。
skip
忽略前几行,默认为0,即不忽略任何行。
当skip=2时 即忽略前两行
check.names
检查列名和行名是否合法,默认为TRUE
如果为FALSE,则不检查
fill = !blank.lines.skip
!blank.lines.skip 是blank.lines.skip的否定形式,而bank.lines.skip的意思是读取文件时跳过空白行
故!blank.lines.skip表示不跳过空白行,而会填充行的空白,为NA
fill=!blank.lines.skip与fill=TRUE,一个意思。
若为FALSE,则不会填充缺失值NA,那将会保留原来的样子
strip.white
是否去除文件数据中行和列的前后空格
默认值为FALSE 即不去除
若为TRUE 则一开始数据这样
V1 V2 V3
1 1 2 3
2 4 5 6
3 7 8 9
读取后这样
V1 V2 V3
1 1 2 3
2 4 5 6
3 7 8 9
blank.lines.skip
是否跳过空白行
默认值为TRUE 即跳过空白行
一开始数据
1,2,3
4,5,6
7,8,9
读取数据后,若设置为TRUE,则
V1 V2 V3
1 1 2 3
2 4 5 6
3 7 8 9
comment.char = "#"
注释字符 等于#
表示把#开头的行当中注释行,读取数据后忽视掉注释行
allowEscapes
是否允许转义字符,默认值为FALSE
假如现在有‘’John\tDoe‘’ 这一字符串 在data.txt中,\t是制表符,当值为TRUE时,‘’John\tDoe‘’中的\t会被当中制表符看待,而不是普通的符号
data <- read.table("data.txt", sep = "\t", allowEscapes = TRUE)
结果会是 John Doe
flush
是否在每一行输入后刷新输入流 默认值为FALSE 即不这样做
但当你读取文件时,若有另一个文件输入新的数据给你正在读取的文件时,应该改了TRUE
除了这种情况外,一般建议默认值即可,因为每一行读取就刷新一次还是会影响效率的
stringsAsFactors
strings 字符 As 当作 Factors因子
表示是否要把字符串数据视作因子
默认值为FALSE 即不这样做
fileEncoding
用于指定读取文件时要用到的字符编码格式
默认为空字符串,即R自动尝试检测文件的编码格式,但有些情况下需要我们人为的设置编码格式
若某文件的字符编码格式为‘GBK’,则可设fileEncoding="GBK"来正确编码
常见的字符编码格式有ASCII UTF-8 GBK ISO-8859-1 等
encoding 是r 处理自身内部时用的字符编码格式
默认值为unknown 即r自动检测要用什么编码格式来呈现数据,保证我们看到正常的文字数字
encoding与fileEncoding的区别
- encoding参数用于指定R环境中的字符编码方式。它影响的是R在处理文本数据时的内部编码方式。例如,对于包含非ASCII字符的字符串对象,R会使用encoding参数指定的编码方式来进行内部存储和处理。
- fileEncoding参数用于指定要读取的文本文件的编码方式。它影响的是R在从文本文件中读取数据时的解码方式。例如,当读取一个包含非ASCII字符的文本文件时,R会使用fileEncoding参数指定的编码方式来解码文件中的字符,以正确地读取和处理文本数据。
简而言之,encoding参数是用于指定R环境的字符编码方式,而fileEncoding参数是用于指定要读取的文本文件的编码方式。 使用encoding参数可以确保在R环境中正确处理所有字符数据,而使用fileEncoding参数可以确保从文本文件中正确读取和解码数据。两个参数的目的和使用场景是不同的,但都与字符编码相关。
text
要读取的文本字符串。如果指定了text参数,则无需指定file参数
data <- read.table(text = "1 2 3
4 5 6
7 8 9", header = FALSE)
结果如下
V1 V2 V3
1 1 2 3
2 4 5 6
3 7 8 9
skipNul
默认为FALSE
当skipNul=TRUE时,read.table函数将跳过在文本文件中的空字符(ASCII码为0)所在的行。这些行将被视为无效行,并且不会被读取到数据框中。
即某一行若有一处空白,则这一行会忽视掉,不读取这一行数据