【问题标题】:fread - read all columns as characterfread - 将所有列作为字符读取
【发布时间】:2017-10-26 16:35:03
【问题描述】:

我正在尝试使用 data.table / fread 将文件读入 R。一些字段有前导零,我只想将数据作为字符读取并手动修复它们。但是我不知道如何将其传达给fread。我正在尝试这个,它像往常一样分配 char、num 等类型:

prop1 <- data.frame(fread("C:\\myFile.csv"), stringsAsFactors = F, colClasses = c(rep('character',58)))

我错过了什么?

【问题讨论】:

    标签: r data.table fread read.csv


    【解决方案1】:

    简单地说:

    colClasses=c("character")
    

    【讨论】:

    • 我知道你试图简单,但是一些额外的文字会帮助人们将其视为完整的答案:) prop1
    【解决方案2】:

    您的colClasses 参数放错了位置。它需要在fread() 内,而不是在data.frame() 内。试试这个:

    prop1 <- data.frame(fread("C:\\myFile.csv", 
                              colClasses = c(rep("character", 58))),
                        stringsAsFactors = FALSE)
    

    更规范地使用data.table 来实现这一点是:

    prop1 <- fread("C:\\myfile.csv", colClasses = 'character', data.table = FALSE)
    

    【讨论】:

    • @MichaelChirico 如何为一列指定类,然后让 fread 自动猜测其余列的类?
    • @user2205916 使用colClasses = list(character = 'known_char_col'),即以list 格式传递已知列的类型,参见?fread
    • @MichaelChirico 我不明白。我的问题,更清楚地提出:stackoverflow.com/questions/48838222/r-data-tablefread
    猜你喜欢
    • 2013-03-18
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2018-09-16
    • 2019-03-31
    • 1970-01-01
    • 2019-10-25
    • 2021-02-16
    相关资源
    最近更新 更多