Имам голям файл (data.txt, 35 GB), който има 3 колони. Някои примерни части от файла биха изглеждали по следния начин:
... ... ...
5 701565 8679.56
8 1.16201e+006 3193.18
1 1.16173e+006 4457.85
14 1.16173e+006 4457.85
9 1.77942e+006 7208.73
4 1.78011e+006 8239.88
14 1.78019e+006 8195.57
9 2.00206e+006 8858.55
4 2.00199e+006 7924
... ... ...
Искам да начертая хистограма за третата колона, когато стойностите във втората колона са между 0 и 50 000.
След това искам да направя друга хистограма, където стойностите на първата колона са между 50 000 и 100 000. И така нататък.
Не знам как да зареждам / чета само данните, от които имам нужда по всяко време. Всяка помощ ще бъде оценена!
Ако трябва да използвам sqldf пакета тогава въпросът, който имам, би бил как мога да кажа, че стойността на втората колона трябва да бъде по-малка от една т.н. 50 "000?
Разликата до Как да чета само линии, които изпълняват условие от CSV в R? е, че нямам имена на колони, затова не мога да направя това, което предлагат в решението си:
sql = "изберете * от файл, където Sepal.Length> 5"
Отговори:
0 за отговор № 1Мисля, че последните версии на readr
подкрепят такива неща. Следното е само адаптирано от помощта за readr::read_csv_chunked
library(readr)
f <- function(x, pos) subset(x, X3 > 0 & X3 < 50000)
df <- read_csv_chunked(
"test.csv",
DataFrameCallback$new(f),
chunk_size = 100000,
col_names = F
)