Как эффективно загрузить часть набора данных на основе индекса времени в R
Я часто работаю с несколькими .csv
файлы, имеющие размер >100MB
; однако во многих случаях мне нужно только подмножество данных. Подмножество всегда находится в пределах определенного интервала времени. У меня вопрос: есть ли функция или способ в R, чтобы я мог загрузить только подмножество данных, не зная индекса временных меток?
Вот как я обычно это делаю:
Представь, что у меня есть .csv
файл называется Large_CSV_file.csv
и у меня есть минутные метки продолжительностью 20 лет в первом столбце и данные во втором.
# Load entire data set
dat <- read.csv("Large_CSV_file.csv")
# Find idx where to cut the data set
start.idx <- which(dat[,1] == as.Date("01-01-1990"))
end.idx <- which(dat[,1] == as.Date("01-01-1991"))
# Subset of data set
dat <- dat[start.idx:end.idx,]
Первая строка кода - это та, которая требует много времени для загрузки, и я чувствую, что неэффективно загружать весь набор данных, прежде чем отбросить 99% его...