在R中使用read.table或read.csv无法读取带有“#”和空格的文件。

29

我有一个文件,第一行是标题。标题可能包含空格和#符号(也可能有其他特殊字符)。我试图使用read.csv或read.table读取此文件,但它一直报错:

undefined columns selected 

more columns than column names 

我的制表符分隔的chromFile文件如下:

Chromosome# Chr chr Size    UCSC NCBI36/hg18    NCBIBuild36 NCBIBuild37
1   Chr1    chr1    247199719   247249719   247249719   249250621
2   Chr2    chr2    242751149   242951149   242951149   243199373

命令:

chromosomes <- read.csv(chromFile, sep="\t",skip =0, header = TRUE,  )

我希望先找到一种方法,将文件原封不动地读取,而不用将空格或#替换为其他可读的符号。


使用 read.delim2 可能有助于您克服这个问题。 - user2110417
1个回答

54
从文档中得知(?read.csv): comment.char 字符串: 长度为1的字符向量,包含一个单一的字符或一个空字符串。使用""来完全关闭注释的解释。
默认值为comment.char = "#",这会导致问题。按照文档,您应该使用comment.char = ""
头部中的空格是另一个问题,正如mrdwab所指出的,可以通过设置check.names = FALSE来解决。
chromosomes <- read.csv(chromFile, sep = "\t", skip = 0, header = TRUE,
                        comment.char = "", check.names = FALSE)

加入 check.names = FALSE,我认为答案就是他们要找的。 - A5C1D2H2I1M1N2O1R2T1
它运行成功了,谢谢。这是通过设置comment.char=""并将check.names设为False的组合实现的。 - user1631306

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接