2017-03-29 115 views
0

我有一个超过100万行的大数据集。我只想读取一部分数据对应于某个特定级别的一个因子,例如column1 == A.如何使用read.csv在R中完成此操作?阅读大数据子集

谢谢

+0

如果您知道它们在哪里(并且它们在一起),则可以使用'read.csv'的'skip'和'nrows'参数。如果你不知道,那么'grep'可能是有序的。 – alistaire

+1

如果你真的想把它全部保存在R中,可以很容易地以批处理的方式读取文件(有多少实际取决于可用的内存),使用'lapply',按照你需要的进行子集分类,事实之后的很多。尽管如此,您可能希望使用'data.table :: fread'或'readr :: read_csv'来实现速度,但它仍然不是最快的方法,因为它会执行大量的过度处理。尽管如此,稍微优化它并不会那么困难。 – alistaire

回答

0

可以使用read.csv不过滤行。您可以尝试sqldf::read.csv.sql,如答案to this question中所述。

但我想大多数人会先使用其他工具处理文件。例如,csvkit允许按行进行过滤。