## ----echo=FALSE--------------------------------------------------------------- library(BiocStyle) self <- Biocpkg("SQLDataFrame"); knitr::opts_chunk$set(error=FALSE, warning=FALSE, message=FALSE) ## ----getPackage, eval=FALSE--------------------------------------------------- # if (!requireNamespace("BiocManager", quietly = TRUE)) # install.packages("BiocManager") # BiocManager::install("SQLDataFrame") ## ----Load, message=FALSE------------------------------------------------------ library(SQLDataFrame) ## ----------------------------------------------------------------------------- ## Mocking up a file. tf <- tempfile() con <- DBI::dbConnect(RSQLite::SQLite(), tf) DBI::dbWriteTable(con, "mtcars", mtcars) DBI::dbDisconnect(con) ## Creating the SQLiteDataFrame. library(SQLDataFrame) df <- SQLDataFrame(tf, dbtype = "sqlite", table = "mtcars") df0 <- SQLiteDataFrame(tf, table = "mtcars") identical(df, df0) ## ----------------------------------------------------------------------------- tf1 <- tempfile() on.exit(unlist(tf1)) con <- DBI::dbConnect(duckdb::duckdb(), tf1) DBI::dbWriteTable(con, "mtcars", mtcars) DBI::dbDisconnect(con) df1 <- SQLDataFrame(tf1, dbtype = "duckdb", table = "mtcars") df2 <- DuckDBDataFrame(tf1, table = "mtcars") identical(df1, df2) ## ----------------------------------------------------------------------------- nrow(df) colnames(df) class(as.data.frame(df)) ## ----------------------------------------------------------------------------- df$mpg # These can participate in usual vector operations: df$mpg * 10 log1p(df$mpg) # Realize this into an ordinary vector. as.vector(df$mpg) ## ----------------------------------------------------------------------------- copy <- df copy$some_random_thing <- runif(nrow(df)) class(copy) colnames(copy) ## ----------------------------------------------------------------------------- copy$wt <- copy$wt * 1000 top.hits <- head(copy) top.hits ## ----------------------------------------------------------------------------- handle <- acquireConn(path(df), dbtype = dbtype(df)) handle releaseConn(path(df)) ## ----------------------------------------------------------------------------- sessionInfo()