Mam duży plik (data.txt, 35 GB), który ma 3 kolumny. Niektóre przykładowe części pliku wyglądałyby następująco:
... ... ...
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
... ... ...
Chcę narysować histogram dla trzeciej kolumny, gdy wartości w drugiej kolumnie wynoszą od 0 do 50 ”000.
Następnie chcę zrobić inny histogram, w którym wartości pierwszej kolumny wynoszą od 50 do 100 000. I tak dalej i tak dalej.
Nie wiem, jak ładować / czytać tylko dane, których potrzebuję w danym momencie.
Jeśli powinienem użyć pakietu sqldf, to mam pytanie, jak mogę powiedzieć, że wartość drugiej kolumny powinna być mniejsza niż np. 50 ”000?
Różnica do Jak odczytać tylko linie, które spełniają warunek z CSV do R? Czy nie mam żadnych nazw kolumn, dlatego nie mogę zrobić tego, co proponują w swoim rozwiązaniu:
sql = "wybierz * z pliku gdzie Sepal.Length> 5"
Odpowiedzi:
0 dla odpowiedzi № 1Myślę, że ostatnie wersje readr
wspierać tego rodzaju rzeczy. Poniższe informacje zostały zaadaptowane z pomocy dla 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
)