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