[R] read.table的check.names参数防止读入数据时列名前自动加上"X."
最近用之前写的R脚本重新跑数据时,出现了报错。经检查,才发现是数据的列名读入R时发生了变化,列名前自动加上了X.符号。
read.table系列函数有一个check.names参数,默认为 TRUE ,因此读入数据时它会自动检查变量名在R中是否有效。如果变量名包含首字母为数字、#、$等情况时,则会自动加上X.,使变量看上去更像一个字符型变量。
check.names是通过调用make.names函数来实现增加字符这一过程的,如列名为1,2, 3, 4, 5,6时,会自动加上X。
make.names(c("1", "2", "3", "4", "5", "6"))
[1] "X1" "X2" "X3" "X4" "X5" "X6"
但这往往不是我们希望的,因为变量名已经改变了, 就只能通过转换后的变量来访问对应数据。为了让列名称和原始的一致,在read.table时,可以设置check.names=F。
补充
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)
file指定读入的文件header是否有列名(默认无)seq指定分隔符(空格、TAB、换行符、回车符)quote制定包围字符型数据的字符。默认情况下,字符串可以被 " 或 ’ 括起,并且两种情况下,引号内部的字符都作为字符串的一部分。有效的引用字符(可能没有)的设置由参数quote控制。默认值改为quote = ""dec = "."指定小数点数colClasses指定列的数据类型格式row.names指定各行名称,也可以是数字,指定某列为行名col.names指定各列名称as.is = !stringsAsFactors as.is字符向量是否转换成因子(仅仅这个功能),TRUE时保留为字符型na.strings = "NA"指定什么样的字符表示值缺少colClasses = NA colClasses运行为输入中的每个列设置需要的类型。注意,colClasses和as.is对每 列专用,而不是每个变量。因此,它对行标签列也同样适用(如果有的话)。nrows = -1最大读入行数,即读入前多少行,“-1”表示都读入
skip = 0跳过文件的前n行(skip = n)check.names = TRUE# 检查变量名在R中是否有效fill = !blank.lines.skip从一个电子表格中导出的文件通常会把拖尾的空字段(包括?堑姆指舴? 忽略掉。为了读取这样的文件,必须设置参数 fill = TRUEstrip.white = FALSE如果设定了分隔符,字符字段起始和收尾处的空白会作为字段一部分看待的。为了去掉这些空白,可以使用参数strip.white = TRUEblank.lines.skip = TRUE默认情况下,read.table忽略空白行。这可以通过设置blank.lines.skip = FALSE来改变。但这个参数只有在和fill = TRUE共同使用时才有效。这时,可能是用空白行表明规则数据中的缺损样本。comment.char = "#"默认情况下,read.table用#作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。只含有空白和注释的行被当作空白行。如果确认数据文件中没有注释内容,用comment.char = ""会比较安全 (也可能让速度比较快)。allowEscapes = FALSEread.table和scan都有一个逻辑参数allowEscapes。从R 2.2.0开始,该参数默认为否,而且反斜杠是唯一被解释为逃逸引用符的字符。如果该参数设为是,以C形式的逃逸规则解释,也就是控制符如八进制和十六进制如40和x2A一样描述。
Ref:
https://www.cnblogs.com/steamed-bread/p/5560641.html
https://www.cnblogs.com/xudongliang/p/5141459.html
[R] read.table的check.names参数防止读入数据时列名前自动加上"X."的更多相关文章
- R read.table函数的check.names参数
		
今天用cummeRbund 对cuffdiff的结果进行可视化, 一直报错,之前跑的好好的,找了半天原因, 原来出现在read.table这个函数上: read.table有一个参数check.nam ...
 - Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -
		
mysql -A不预读数据库信息(use dbname 更快)—Reading table information for completion of table and column names Y ...
 - 解决:Reading table information for completion of table and column names
		
mysql -A不预读数据库信息(use dbname 更快)—Reading table information for completion of table and column names Y ...
 - R语言table()函数
		
R语言table()函数比较有用,两个示例尤其是混淆矩阵这个案例比较有用: 例子一:统计频次 z<-c(1,2,2,4,2,7,1,1);z1<-table(z);summary(z1); ...
 - MySQL Reading table information for completion of table and column names
		
打开数据库是发现提示: mysql> show databases; +--------------------+ | Database | +--------------------+ | b ...
 - msyql  error: Reading table information for completion of table and column names  You can turn off this feature to get a quicker startup with -A
		
mysql> use mydb Reading table information for completion of table and column names You can turn o ...
 - R中的par()函数的参数
		
把R中par()函数的主要参数整理了一下(另外本来还整理了每个参数的帮助文档中文解释,但是太长,就分类之后,整理为图表,excel不便放上来,就放了这些表的截图)
 - 今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在Win中见过的/r回车符号。由于编辑软件的编码问题,某些IDE的编辑器在编辑完文件之后会自动加上这个^M符号。看起来对我们的源代码没有任何影响,其实并不然,当我们把源代码文件Check In到svn之类
		
今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在W ...
 - 将基因组数据分类并写出文件,python,awk,R data.table速度PK
		
由于基因组数据过大,想进一步用R语言处理担心系统内存不够,因此想着将文件按染色体拆分,发现python,awk,R 语言都能够非常简单快捷的实现,那么速度是否有差距呢,因此在跑几个50G的大文件之前, ...
 
随机推荐
- 用例圖學習實例 / Learning Use Case Diagram by Examples
			
什麼是用例圖? 用例描述了一個演員和感興趣的系統之間的一系列交互,以達到某種特定目標,並由某種觸發事件引發.用例滿足需求或為演員解決問題.用例圖包含一組用例,可以通過從每個角色的不同角度講述系統將如何 ...
 - Scrum Meeting 14
			
第14次例会报告 日期:2021年06月07日 会议主要内容概述: 汇报了已完成的工作,明确了下一步目标,正在努力赶进度. 一.进度情况 我们采用日报的形式记录每个人的具体进度,链接Home · Wi ...
 - Spring DeferredResult 异步请求
			
Spring DeferredResult 异步请求 一.背景 二.分析 三.实现要求 四.后端代码实现 五.运行结果 1.超时操作 2.正常操作 六.DeferredResult运行原理 六.注意事 ...
 - CCD摄像头视场角计算公式
			
视场角大小和CCD传感器尺寸和镜头焦距有关: 水平视场角 = 2 × arctan(w / 2f); 垂直视场角 = 2 × arctan(h / 2f); 视场角 = 2 × arctan(d / ...
 - matplotlib.legend()函数用法
			
用的较多,作为记录 legend语法参数如下: matplotlib.pyplot.legend(*args, **kwargs) 几个暂时主要用的参数: (1)设置图例位置 使用loc参数 plt. ...
 - Veritas Backup Exec™ 21.3 Multilingual (Windows)
			
Backup Exec 21.3, Release date: 2021-09-06 请访问原文链接:https://sysin.org/blog/veritas-backup-exec-21-3/, ...
 - linux下文件特殊权限设置位S和沾附位T(转载)
			
今天在创建文件的时候,发现了文件权限末尾有个T,之前没留意过,后来又用c创建(open)了两个文件来查看,在我没有指定权限(省略open的第三个参数)的时候,有时还会出现S,虽然还没弄懂什么时候会出现 ...
 - cf13A Numbers(,,)
			
题意: Little Petya likes numbers a lot. He found that number 123 in base 16 consists of two digits: th ...
 - 攻防世界 WEB 高手进阶区 XCTF Web_python_template_injection Writeup
			
攻防世界 WEB 高手进阶区 XCTF Web_python_template_injection Writeup 题目介绍 题目考点 SSTI模板注入漏洞 Writeup 知识补充 模板注入:模板引 ...
 - robot_framewok自动化测试--(1)Robot Framework 环境搭建及常见日志问题解决办法
			
一.Robot Framework 介绍 Robot Framework 的架构是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD).它具有易于使用的表格来组织测试过程和测试数据. 它使 ...