【发布时间】:2015-10-22 10:36:40
【问题描述】:
是否可以在readr 包中读取数据并在所有列中指定单一数据类型?类似于 base::read.table 与 colClasses = "character" 或使用 as.is 参数。
除非任务、数据头、文件编码等在分析之前已经明确定义,否则我更喜欢在不更改数据类型的情况下编写加载器,然后在下游处理模式。总是对别人如何看待事物的建议持开放态度。
【问题讨论】:
-
文档中可能有一些重要的东西。
-
要将所有列设置为相同类型,使用
nmax = 1读取1 行以获取列数,然后使用col_types = paste(rep("c", ncol), collapse = "")读取整个内容(对于“字符”)。跨度> -
我认为询问 readr 是否有能力以与
read.table中的colClasses相同的方式回收列规范是非常合理的。我没有看到一种紧凑、直接的方法,但我认为它会在 github 上提出一个很好的功能请求。 -
谢谢,是的,我查看了 github 上的文档和 col_types.R 文件,但没有任何反应。我同意肯定有解决方法,但可能只是默认返回基本功能,而不是做任何形式的“诡计”(出于可维护性的原因)。
-
FWIW,我有点怀疑 Hadley 是否喜欢完全回收的列规范的想法,但他可能愿意添加一种紧凑、直接的方式来告诉 readr只需将所有内容都读取为字符(或另一种类型)。