4

是否可以在readr包内读取数据并在所有列中指定单一数据类型?类似于base::read.tablewithcolClasses = "character"或 usingas.is参数。

除非任务、数据头、文件编码等在分析之前已经明确定义,否则我更喜欢在不更改数据类型的情况下编写加载器,然后在下游处理模式。总是对别人如何看待事物的建议持开放态度。

4

2 回答 2

8

readr 0.2.2 开始,我们可以执行以下操作来读取所有列作为字符的 csv:

read_csv("path/to/file",col_types = cols(.default = col_character()))
于 2015-10-22T19:12:44.840 回答
3

将我的评论转换为答案。不,这不是内置的(此时),文档col_types非常清楚它的功能,这不是其中之一。鉴于这种col_types工作方式,实现这一点可能需要一个全新的论点,因为一个特性是“短”col_types将用于限制读取的列数。

但是,您可以编写一个包装器:

read_table_asis = function(...) {
    n_cols = ncol(read_table(..., n_max = 1))
    read_table(..., col_types = paste(rep("c", n_cols), collapse = ""))
}
于 2015-07-30T21:51:33.683 回答