Sometimes I do something like this when I have the data in a tab-delimited file:
df <- read.table(pipe("cut -f1,5,28 myFile.txt"))
That lets cut
do the data selection, which it can do without using much memory at all.
See Only read limited number of columns for pure R version, using "NULL"
in the colClasses
argument to read.table
.