Вы уверены, что у вас есть 9 миллионов строк в файле размером 4,5 МБ ( изменить : возможно, ваш файл имеет размер 4,5 ГБ ??)? Он должен быть сильно сжат - когда я создаю файл размером в одну десятую, его размер составляет 115 МБ ...
n <- 9e5
set.seed(1001)
z <- rnorm(9e5)
z <- cumsum(z)/sum(z)
d <- data.frame(V1=seq(0,1,length=n),V2=z)
ff <- gzfile("lgfile2.gz", "w")
write.table(d,row.names=FALSE,col.names=FALSE,file=ff)
close(ff)
file.info("lgfile2.gz")["size"]
По информации, которую вы предоставили, трудно определить, какие "дублирующие строки" имеются в вашем наборе данных ... unique(dataset)
будет извлекать только уникальные строки, но это может быть бесполезно. Я бы, вероятно, начал с простого сокращения данных в 100 или 1000 раз:
smdata <- dataset[seq(1,nrow(dataset),by=1000),]
и посмотри, как это оттуда пойдет. ( edit : запятая забыта!)
Графическое представление больших наборов данных часто является сложной задачей. В целом вам будет лучше:
- Обобщение данных каким-либо образом перед их построением
- с использованием специализированного графического типа (графики плотности, контуры, гексагональное объединение), который сокращает данные
- с использованием базовой графики, которая использует модель «рисовать и забывать» (если запись графики не включена, например, в Windows), а не решетчатую / ggplot / grid графику, которая сохраняет полный графический объект и затем отображает его
- с использованием растровой или растровой графики (PNG и т. Д.), Которая записывает только состояние каждого пикселя в изображении, а не векторная графика, которая сохраняет все объекты независимо от того, перекрываются они или нет