簡體   English   中英

R-從文件中讀取特定行

[英]R - Reading in specific rows from a file

假設我有多個文件,每個文件有15,000行和40,000列。 我已經預先確定,我只需要每個文件的最后5行。 (例如,我需要14996、14997、14998、14999和15000行)。

在R中,我一直在使用read.table()遍歷每個文件,並帶有“ skip”和“ nrows”參數,以從每個文件中提取所需的行,而無需將整個文件讀入R。不幸的是,這需要很長時間,使用skip參數,使R到達15,000 x 40,000表的最后五行。 有沒有一種簡單,快捷的方法來提取我需要的行? 我應該嘗試使用mySQL嗎?

這可能比read.table()快得多

lapply(files, data.table::fread, skip = 14995L, nrow = 5L)

其中files是您的文件名列表。

更新:根據您的評論,我認為您將要在read.table()嘗試gzfile() read.table() 您沒有提到在上一次嘗試中是否使用過它。

dflist <- lapply(files, function(x) {
    df <- read.table(zz <- gzfile(x), skip = 14995L, nrow = 5L)
    close(zz)
    df
})

暫無
暫無

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

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