Использование sqldf было бы так. Добавьте dbname = tempfile()
аргумент, если вы не можете поместить его в память.
library(sqldf)
val <- "of"
fn$sqldf("select max(count) count, prediction from dt where base = '$val'")
## count prediction
##1 258586 the
Альтернативно, чтобы настроить базу данных напрямую с использованием RSQLite и создать индекс:
library(gsubfn)
library(RSQLite)
con <- dbConnect(SQLite(), "dt.db")
dbWriteTable(con, "dt", dt)
dbExecute(con, "create index idx on dt(base)")
val <- "of"
fn$dbGetQuery(con, "select max(count) count, prediction from dt where base = '$val'")
## count prediction
## 1 258586 the
dbDisconnect(con)
Примечание
Запустите это сначала:
library(data.table)
dt <- data.table(
"base" = c("of", "of", "of", "lead and background vocals",
"save thou me from", "silent in the face"),
"prediction" = c("the", "set", "course", "from", "the", "of"),
"count" = c(258586, 246646, 137533, 4, 4, 4)
)