Uses if_else_block
.
assign_slice(source, testexpr, columns, value, env = parent.frame())
optree relop node or data.frame.
character containing the test expression.
character vector of column names to alter.
value to set in matching rows and columns (scalar).
environment to look to.
optree or data.frame.
Note: ifebtest_*
is a reserved column name for this procedure.
# NOT RUN {
if (requireNamespace("DBI", quietly = TRUE) && requireNamespace("RSQLite", quietly = TRUE)) {
my_db <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
d <- rq_copy_to(
my_db,
'd',
data.frame(i = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
a = c(0, 0, 1, 1, 1, 1, 1, 1, 1, 1),
b = c(0, 1, 0, 1, 1, 1, 1, 1, 1, 1),
r = runif(10)),
temporary=TRUE, overwrite=TRUE)
optree <- d %.>%
assign_slice(.,
testexpr = qe(r<0.5),
columns = qc(a, b),
value = 2)
cat(format(optree))
sql <- to_sql(optree, my_db)
cat(sql)
print(DBI::dbGetQuery(my_db, sql))
DBI::dbDisconnect(my_db)
}
# }
Run the code above in your browser using DataLab