我有一个非常大的文件,我只需要第1行的第一个元素,100001,200001,我像这样提取:
x1 <- read.csv(filename, nrows = 1, header = F)[1, 1]
x2 <- read.csv(filename, skip = 100000, nrows = 1, header = F)[1, 1]
x3 <- read.csv(filename, skip = 200000, nrows = 1, header = F)[1, 1]
我不知道阅读是如何工作的,但我认为这会迫使一些不必要的阅读/跳过。
我想知道我是否可以在阅读x2
后继续跳过,而不是再次从文件的开头开始。那会保存一些时间。
如果可以避免的话,我不希望在内存中(在某个时候)将整个文件(或整个第一列)保存在内存中。
1条答案
按热度按时间gcmastyq1#
这里有一个
scan
的方法。它假定您正在阅读数值数据,如果不包含在
scan
的调用中。测试文件结束。请注意,我跳过了10行,而不是1000行。
创建于2023-06-08使用reprex v2.0.2
数据
这是测试文件的内容(40行)。