我有一个大约有200万行的数据集,因此如果不读取整个数据集,我想要读取数据集的子集。我的数据集中包含一个日期列,所以我只想在不读取整个数据集的情况下读取日期范围之间的数据集,因为这将耗费时间并浪费内存。所以如何完成它可以有人指导我吗?
答案 0 :(得分:10)
在skip=
read.table
参数
read.table("file.txt",skip= ,nrows= )
skip=
和nrows=
都采用行指示符编号,因此只需在=后添加它们。
nrows=
定义了导入文件时的范围。
如果您还没有这样做,我建议您阅读https://stat.ethz.ch/R-manual/R-devel/library/utils/html/read.table.html。
另外,请参阅我的一个问题:
R - Reading lines from a .txt-file after a specific line
它在某种程度上涉及同一主题。
另一种可能的方法是在grep()
skip=
read.table(...,skip=grep("2005-12-31", readLines("File.txt")),nrows=365)
这一行的作用是跳过它直到找到grep()
中描述的行并读取之后的行。 nrow=
将在读取365行后停止读取(这样,如果一行等于一个日期,则读取一年的日期)。
这看起来有点复杂,但这是我知道如何解决这个问题的唯一方法。