A common task for is to run database queries on gene symbols or compound identifiers. This involves constructing an SQL query as a string and sending that off to the database. In the case of the ROracle package, the query strings are limited to a 1000 (?) or so characters. This means that directly querying for a thousand identifiers won’t work. And going through the list of identifiers one at a time is inefficient. What we need in this situation is a to “chunk” the list (or vector) of identifiers and work on individual chunks. With the help of the itertools package, this is very easy:
1 2 3 4 5 6 7 8 | library(itertools) n <- 1:11 chunk.size <- 3 it <- ihasNext(ichunk(n, chunk.size)) while (itertools::hasNext(it)) { achunk <- unlist(nextElem(it)) print(achunk) } |