【问题标题】:Cannot read file with "#" and space using read.table or read.csv in R无法使用 R 中的 read.table 或 read.csv 读取带有“#”和空格的文件
【发布时间】:2023-03-24 03:54:01
【问题描述】:

我有一个文件,其中第一行是标题。标题可以有空格和# 符号(也可能有其他特殊字符)。我正在尝试使用 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,  )

我想首先寻找一种方法来读取文件,因为它不需要用其他可读符号替换空格或#。

【问题讨论】:

    标签: r import read.table


    【解决方案1】:

    来自文档 (?read.csv):

    comment.char 字符:长度为 1 的字符向量,包含单个字符或空字符串。使用 "" 完全关闭对 cme​​ts 的解释。

    默认是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 然后我认为答案就是他们想要的。
    • 谢谢..comment.char="" 和 check.names=False 的组合
    猜你喜欢
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多