自从开始学习R语言,read.table是较早接触到的函数,因为要读取数据,也因为最开始学习数据分析是用“制表分隔符的txt”文件比较多,xlsm在linux系统中又不太合适,所以喜欢用txt文件,对csv格式的文件也无感。

通常我使用read.table都是直接输入以下代码,屡试不爽:

data_example

#header表示列名,row.names表示行名,sep表示分割符号(\t就代表制表分隔符)

直到有一天我遇到了这种table:

image.png

按惯例读取数据后,发现根本不是我原来的数据

image.png

开始不明白怎么回事,只知道第一行不是列名,可能有问题,就删除了第一行,读取后发现结果没变。

在详细了解read.table的用法后,才知道是"#"出了问题,在R语言中"#"代表注释字符,识别到了该符号就跳过了,需要加入comment.char=""取消注释,以及使用skip=1跳过第一行(也可预先删除第一行)。重新输入代码:

data_example

得到了正确的结果:

image.png

主要问题是在使用该函数之前,并没有详细了解该函数的用法,只是满足了当时的要求,后面遇到别的类型的表格就麻爪了。

详细用法(参考文章:http://www.biye5u.com/article/R/2017/6348.html)

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 = default.stringsAsFactors(),

fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

各参数的说明如下:

(1)file

要读取的文件名称,矩形表格数据的每行是文件中的一行,与scan()函数相同,如果file参数中给定的文件名不是绝对路径,则文件名是相对于当前R的工作目录给出的。

(2)header

逻辑值。用于指出文件的第一行是否为数据变量的名字。缺省情况下,由文件的格式来确定此值。如果header设置为TRUE,则要求第一行要比数据列的数量少一列。

(3)sep

数据的分隔符。默认情况下,sep=""。此参数用于指定数据文件中每行中数据之间使用的分隔符。默认情况下,read.table()函数以空白作为数据的分隔符,即默认情况下,read.table()函数可以将1个或多个空格、tab制表符、换行符或回车符作为分隔符。

(4)quote

用于指定包围字符型数据的字符。如果不使用引用,则可以将该参数设置为quote=""。

默认情况下,字符串可以被 " 或 ' 括起,并且两种情况下,引号内部的字符都作为字符串的一部分。有效的引用字符(可能没有)的设置由参数 quote 控制。对于sep = "\n",默认值改为 quote = ""。

如果没有设定分隔字符,在被引号括起的字符串里面,引号需要用 C格式的转义字符进行转义,即在引号前面直接加反斜杠 \。

如果设定了分隔符,在被引号括起的字符串里面,按照电子表格的习惯,把引号重复两次以达到转义效果。例如:'One string isn''t two',"one more"

则可以使用下面的格式读取:read.table("testfile", sep = ",")

即在默认情况下,字符串中的双写单引号或双写双引号将被解释为一个并输出。

(5)dec

用于指明数据文件中小数的小数点。

(6)numerals

字符串类型。用于指定文件中的数字转换为双精度数据时丢失精度的情况下如何进行转换。这种情况发生于一个数字的位数超出double可以存储的位数时。有3种选择:

numerals = "allow.loss" :该值为默认值。允许丢失精度。

numerals = "warn.loss":给出一个丢失精度的警告消息,并与numerals="allow.loss"一样允许丢失精度。

numerals = "no.loss":当发生丢失精度时,将不会被转换为数字,根据as.is参数的设置,而转换为因子(factor)或则缺省情况下转换为字符串。

(7)row.names

保存行名的向量。可以使用此参数以向量的形式给出每行的实际行名。或者要读取的表中包含行名称的列序号或列名字符串。

在数据文件中有行头且首行的字段名比数据列少一个的情况下,数据文件中第1列将被视为行名称。除此情况外,在没有给定row.names参数时,读取的行名将会自动编号。

可以使用row.names = NULL强制行进行编号。

(8)col.names

指定列名的向量。缺省情况下是又"V"加上列序构成,即V1,V2,V3......

(9)as.is

该参数用于确定read.table()函数读取字符型数据时是否转换为因子型变量。当其取值为FALSE时,该函数将把字符型数据转换为因子型数据,取值为TRUE时,仍将其保留为字符型数据。其取值可以是逻辑值向量(必要时可以循环赋值),数值型向量或字符型向量,以控制哪些列不被转换为因子。

注意:可以通过设置参数 colClasses = "character"来阻止所有列转换为因子,包括数值型的列。

(10)na.strings

用于指定缺失数据的值,以转换为NA。在逻辑型,整型,数字型和复数型的字段中,空白域将被认为是缺失值。

(11)colClasses

用于指定列所属类的字符串向量。

(12)nrows

整型数。用于指定从文件中读取的最大行数。负数或其它无效值将会被忽略。

(13)skip

整型数。读取数据时忽略的行数。

(14)check.names

逻辑值。该参数值设置为TRUE时,数据框中的变量名将会被检查,以确保符在语法上是有效的变量名称。

(15)fill

逻辑值。在没有忽略空白行的情况下(即blank.lines.skip=FLASE),且fill设置为TRUE时,如果数据文件中某行的数据少于其他行,则自动添加空白域。

(16)strip.white

逻辑值,默认为FALSE。此参数只在指定了sep参数时有效。当此参数设置为TRUE时,数据文件中没有包围的字符串域的前边和后边的空格将会被去掉。

(17)blank.lines.skip

逻辑值,此参数值设置为TRUE时,数据文件中的空白行将被忽略。默认值为TRUE。

(18)comment.char

字符型。包含单个字符或空字符的向量。代表注释字符的开始字符。可以使用""关闭注释。

(19)allowEscapes

逻辑值。类似“\n”这种C风格的转义符。如果这种转义符并不是包含在字符串中,该函数可能解释为字段分隔符。

(20)flush

逻辑值。默认值为FALSE。当该参数值设置为TRUE时,则该函数读取完指定列数后将转到下一行。这允许用户在最后一个字段后面添加注释。

(21)stringsAsFactors

逻辑值。控制是否将字符向量转换为因子。

(22)fileEncoding

字符串类型,指定文件的编码方式。如果指定了该参数,则文本数据按照指定的格式重新编码。

(23)encoding

假定输入字符串的编码方式。

(24)text

字符串类型。当未提供file参数时,则函数可以通过一个文本链接从text中读取数据。

(25)skipNul

逻辑值。是否忽略空值。默认为FALSE。

r语言显示找不到read_html,R语言中read.table函数不常见的用法-文本中有#注释符号...相关推荐

  1. c语言 define 关键字,c语言中define的一个不常见的用法

    一个开源的x86模拟器中的键盘宏 我看不懂对应的代码,我只知道最终的宏_KEY_button这种形式的枚举,比如_KEY_ESCAPE对应的值是1,但是对于这个宏是怎么得出来的不懂,具体来说,第一行中 ...

  2. c语言rand函数源码路径,C语言中的rand()函数

    rand函数,C语言中用来产生一个随机数的函数. rand函数界限:stdlib.h头文件中有宏#define RAND_MAX 0x7fff rand产生一个0-0x7fff的随机数,即最大是327 ...

  3. R语言与数据分析(2)-R语言简介

    R语言的特点 1.有效的数据处理和保存机制 2.拥有一整套数组和矩阵的操作运算符 3.一系列连贯而又完整的数据分析中间工具 4.图形统计可以对数据直接进行分析和显示,可用于多种图形设备 5.一种相当完 ...

  4. R语言向量vector数据类型元素索引、访问:使用length函数计算向量的长度、元素个数

    R语言向量vector数据类型元素索引.访问:使用length函数计算向量的长度.元素个数 目录 R语言向量vector数据类型元素索引.访问:使用length函数计算向量的长度.元素个数 R 语言特 ...

  5. Day01零基础自学R语言(最详细教程)——R软件安装

    R语言简介 R语言是当今排名进入前十五的程序设计语言,也是大数据处理的常用工具之一. R语言是由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman所开发的,因为两人名字开头都是R ...

  6. R语言使用psych包进行探索性因子分析EFA、使用cov2cor函数将原始数据的协方差矩阵将其转换为相关性矩阵( covariance matrix into correlation matrix)

    R语言使用psych包进行探索性因子分析EFA.使用cov2cor函数将原始数据的协方差矩阵将其转换为相关性矩阵( covariance matrix transform into correlati ...

  7. R语言使用pwr包的pwr.r.test函数对相关信息分析进行效用分析(power analysis)、在已知效应量(effect size)、显著性水平、效用值的情况下计算需要的样本量

    R语言使用pwr包的pwr.r.test函数对相关信息分析(Correlations)进行效用分析(power analysis).在已知效应量(effect size).显著性水平(sig).效用值 ...

  8. R语言使用pwr包的pwr.r.test函数对相关信息分析(Correlations)进行效用分析(power analysis)的语法

    R语言使用pwr包的pwr.r.test函数对相关信息分析(Correlations)进行效用分析(power analysis)的语法 目录

  9. R语言ggplot2可视化:ggplot2可视化使用guide_axis(check.overlap=TRUE)选项删除重叠的轴文本、跳过部分中间轴标签

    R语言ggplot2可视化:ggplot2可视化使用guide_axis(check.overlap=TRUE)选项删除重叠的轴文本.跳过部分中间轴标签 目录

最新文章

  1. python和c哪个适合入门-编程入门选什么语言好?C 语言还是Python ?为你解析
  2. 书Visual C++.NET应用教程(附光盘)——高等学校计算机语言应用教的评论
  3. Asp.NET获取文件及其路径
  4. Angular 2/Ionic 2 @input和@output理解
  5. 【NLP】中文BERT上分新技巧,多粒度信息来帮忙
  6. v8学习笔记(七) 执行过程
  7. windows命令提示符下输入net start/stop mysql发生系统错误5,拒绝访问的解决方法
  8. 【floyd】HDU 1874 畅通project续
  9. elm具体实现过程_函数式编程中的战斗机(二)---elm语言MUV设计模式应用实例...
  10. 【机器学习】Andrew Ng——前言
  11. [zoj3593]扩展欧几里得+三分
  12. [转载] 简易Python代码---购物清单
  13. PHP学习笔记:利用gd库给图片打图片水印
  14. 开发小工具和一些小技巧
  15. 微服务数据库分库设计解决方案(跨库关联查询、分布式事务处理)
  16. ODAC的tnsnames.ora文件
  17. 「公众号吸粉神级插件」实现网站下载文件需要公众号获取验证码
  18. 息屏录像软件下载地址和教程
  19. python画正多边形_少儿python编程之画正多边形代码优化教程
  20. 当冬日阳光照耀我孤苦的心怀

热门文章

  1. fets去除回车符号
  2. 已解决org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML异
  3. 使用MemoryStream类读写内存
  4. 无线通信基础——“单跳”与“多跳”
  5. 兴趣社区圈子论坛系统搭建教程,教你上线自己的论坛圈子系统。
  6. excel排序没有 扩展选定区域
  7. 推荐一些在线效率工具汇总(数据分析,舆情监测、图片语义识别等)
  8. 认真学习设计模式之委派模式(Delegate Pattern)
  9. python 基础知识点 (一)
  10. 逆向菜鸡实战破解思科模拟器登录限制