1

我找到了有关将文件导入 R 的快速方法的好技巧,但我想知道是否可以仅将给定文件的子集导入变量。

就我而言,我有一个包含 1600 万行的文件保存为 .rds(也保存为 .feather,因为我正在玩这两种格式的速度),我想导入它的一个子集(比如说,一些行或几列)进行初步分析。

可能吗?readRDS() 似乎不接受任何子集,而 read_feather() 似乎不允许行选择(尽管您可以指定列)。我应该考虑另一种数据格式吗?

4

2 回答 2

3

最简洁的答案是不'。一个不错的替代方案是fst文件格式,它允许从大型数据集中检索选择的列和行。更多信息在这里

于 2019-01-16T14:20:21.417 回答
0

使用readr::read_csv您可以使用n_max参数并读取任意数量的行。

使用readRDS,我想您可以读取文件dplyr::sample_n,然后使用rm(object).

如果您无法将整个文件读入内存,您可以使用其中一个sqlite或另一个数据库,这是首选方式,或者您可以尝试类似的方法readr::read_delim_chunked,它允许您分块读取文件,使用读取块(如 sample_n),从内存中删除读取的 chukc 并只保留回调的结果并继续这样直到文件结束。

于 2018-10-23T20:51:14.780 回答