RR语言学习

[R] 如何防止read.table读入数据时列名前自动加上"X

2019-10-28  本文已影响0人  生物信息与育种

最近用之前写的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)

Ref:
https://www.cnblogs.com/steamed-bread/p/5560641.html
https://www.cnblogs.com/xudongliang/p/5141459.html

上一篇 下一篇

猜你喜欢

热点阅读