r语言read.table详细解释

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)所在的行。这些行将被视为无效行,并且不会被读取到数据框中。

即某一行若有一处空白,则这一行会忽视掉,不读取这一行数据

 

 

 

  • 28
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值