R 在不解压缩的情况下读取 zip 数据文件(信息丢失)

R Reading in a zip data file without unzipping it (loss of information)

根据 this SO question 中的一个答案,我得到了以下几行:

require(readr)
myData <- read_csv("foo.txt.gz")

但是由于某种原因,这让我丢失了数据。

我的第二列是时间列,格式如下:9:30:00.244271971 而这段代码将其转换为:09:30:00,因此丢失了很多信息。

我该如何解决这个问题?有没有办法避免丢失这些信息?

@jaySf 评论证明效果很好。所以这里是答案:

(我有 5 列,前四列是字符,最后一列是数字。)

myData <- read_csv("foo.txt.gz", col_types = list("c","c","c","c","n"))

您也可以随时使用 data.table 中的 fread()。您可以从文件参数执行任意 shell 命令来处理解压缩,默认情况下它也不会自动强制您的时间戳,因此您不应该有截断问题。小插图 Convenience features of fread 有一些很好的例子。

(奖金,它比 reader 快得多,如果你安装开发 v1.10.5 版本关闭 github 和 multi-threading 在 fread.\

library(data.table)

myData <- fread("gunzip -c foo.txt.gz")