gpt4 book ai didi

r - 如何读取非常大的文本文件(~15GB)?

转载 作者:行者123 更新时间:2023-12-05 04:37:38 28 4
gpt4 key购买 nike

我有一个非常大的 .txt 文件,我需要将其加载到 RStudio 中。该文件包含约 850,000 列和约 2000 行。太大而无法在 Excel 中打开以转换为 .csv。 txt文件内容说明:

样本 ID、CpGprobeID1、CpGprobeID2(x850K)...
ID1,betavalue1(x850k)
ID2,betavalue1(x850K)...

在这个 .txt 文件中,我实际上只需要 ~30000 列 (CpGprobeIDs)。我有一个 .csv 文件,其中包含这 30000 个所需的 CpGprobeID,以行而不是列的形式列出(将此文件称为 CpGprobeIDsREDUCED.csv)

有没有一种方法可以将 15GB .txt 文件中的列减少为仅包含约 30000 行 CpGprobeIDsREDUCED.csv 中的 ID,或者有其他方法可以将这么大的文件加载到 RStudio 中吗?

到目前为止,我已经尝试失败了:

library(data.table)
filename <- fread("filename.txt")

^ R 遇到 fatal error , session 中止。这实际上适用于约 24 行的较小样本量,即使有 850K 列,所以这是我得到的最接近的样本。

然后我尝试将其转换为仅包含 ~30000 个所需 ID 的 csv 文件,但遇到以下错误消息:

library(readr)
CpGprobeIDsREDUCED <- read_csv("CpGprobeIDsREDUCED.csv")
library(sqldf)
CpGkeep <- CpGprobeIDsREDUCED$Name
import_filename <- fn$read.csv.sql("filename.txt", sep="\t", sql = "select * from file where
SampleID in ( `toString(CpGkeep)` )")

Error: too many columns on file
In addition: Warning message:
In for (i in seq_along(col)) col[i] <- length(scan(file, what = "", :
closing unused connection 3 (filename.txt)

我有点不知道下一步该怎么做,欢迎任何建议。

谢谢

最佳答案

这就是例如可以使用 disk.frame,但还有一些其他选项。

设置你的框架

setup_disk.frame()
options(future.globals.maxSize = Inf)

然后加载你的数据

df_path = file.path(tempdir(), "tmp.df")

data <- csv_to_disk.frame(
"filename.txt",
outdir = df_path,
overwrite = T)

另请查看 their vignette 中的示例

If the CSV is too large to read in, then we can also use the in_chunk_size option to control how many rows to read in at once. For example to read in the data 100,000 rows at a time.

library(nycflights13)
library(disk.frame)

# write a csv
csv_path = file.path(tempdir(), "tmp_flights.csv")

data.table::fwrite(flights, csv_path)

df_path = file.path(tempdir(), "tmp_flights.df")

flights.df <- csv_to_disk.frame(
csv_path,
outdir = df_path,
in_chunk_size = 100000)

flights.df

关于r - 如何读取非常大的文本文件(~15GB)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70697919/

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