gpt4 book ai didi

r - 如何按行条件将巨大的csv文件读入R?

转载 作者:行者123 更新时间:2023-12-02 01:38:39 25 4
gpt4 key购买 nike

我有一个巨大的csv文件,大约有1500万行,大小约为3G。

我想将这个文件逐段读入R,每次只选择那些符合特定条件的行。

例如其中一列称为产品类型,因此我只需要将一种类型的产品读入 R,并对其进行处理,然后输出结果,然后再转到另一种类型的产品...

到目前为止,我已经阅读了不同的方法,例如将大文件上传到数据库,或者通过 colbycol 逐列读取,或者通过 ff 读取一大块行......

有任何纯 R 解决方案可以解决我的问题吗?

最佳答案

您可以使用RSQLite包:

library(RSQLite)
# Create/Connect to a database
con <- dbConnect("SQLite", dbname = "sample_db.sqlite")

# read csv file into sql database
# Warning: this is going to take some time and disk space,
# as your complete CSV file is transferred into an SQLite database.
dbWriteTable(con, name="sample_table", value="Your_Big_CSV_File.csv",
row.names=FALSE, header=TRUE, sep = ",")

# Query your data as you like
yourData <- dbGetQuery(con, "SELECT * FROM sample_table LIMIT 10")

dbDisconnect(con)

下次您想要访问数据时,您可以省略 dbWriteTable,因为 SQLite 表存储在磁盘上。

注意:将 CSV 数据写入 SQLite 文件时不会先将所有数据加载到内存中。因此,您最终使用的内存将受到查询返回的数据量的限制。

关于r - 如何按行条件将巨大的csv文件读入R?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18791396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com