簡體   English   中英

用 R 打開大文件

[英]Open large files with R

我想在 R 中處理一個包含 100.000.000 個數據集的文件(1.9GB)。 實際上,我只想擁有每 1000 個數據集。 每個數據集包含 3 列,由選項卡分隔。 我試過:data <- read.delim("file.txt"),但 R 無法一次管理所有數據集。 我可以直接告訴 R 從文件中加載每 1000 個數據集嗎?

讀完文件后,我想對第2列的數據進行bin,是否可以直接對第2列中寫入的數字進行bin? 是否可以逐行讀取文件,而不將整個文件加載到 memory 中?

謝謝你的幫助。

斯文

在讀入 R 之前,您應該使用其他工具對文件進行預處理。

要將每 1000 行寫入一個新文件,您可以使用sed ,如下所示:

sed -n '0~1000p' infile > outfile

然后將新文件讀入R:

datasets <- read.table("outfile", sep = "\t", header = F)

您可能需要查看專門介紹R 數據導入/導出手冊

天真的方法總是加載所有數據。 你不想要那個。 You may want another script which reads line-by-line (written in awk, perl, python, C, ...) and emits only every N-th line. 然后,您可以通過 pipe 直接在 R 中從該程序中讀取 output - 請參閱有關連接的幫助。

一般來說,非常大的 memory 設置需要對 R 有所了解。 耐心點,你會得到它的工作,但再一次,天真的方法需要大量的 RAM 和 64 位操作系統。

也許 package colbycol可能對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM