[英]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.