fread - 将所有列作为字符读取

Posted

技术标签:

【中文标题】fread - 将所有列作为字符读取【英文标题】:fread - read all columns as character 【发布时间】: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)))

我错过了什么?

【问题讨论】:

【参考方案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 我不明白。我的问题,更清楚地提出:***.com/questions/48838222/r-data-tablefread

以上是关于fread - 将所有列作为字符读取的主要内容,如果未能解决你的问题,请参考以下文章

与 grepl 一起 fread

fread 不读取多行

将 excel 列作为文本读取

R 使用 fread colClasses 或跳过参数来读取没有列标题的 csv

文件函数fread()获取文件的内容的问题,在线等,急啊!

在 Erlang 中使用 fread 从用户/控制台读取多个单词