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