extend | R Documentation |
Create a node similar to a Codd extend relational operator (add derived columns).
extend(
source,
...,
partitionby = NULL,
orderby = NULL,
reverse = NULL,
display_form = NULL,
env = parent.frame()
)
extend_nse(
source,
...,
partitionby = NULL,
orderby = NULL,
reverse = NULL,
display_form = NULL,
env = parent.frame()
)
source |
source to select from. |
... |
new column assignment expressions. |
partitionby |
partitioning (window function) terms. |
orderby |
ordering (in window function) terms. |
reverse |
reverse ordering (in window function) terms. |
display_form |
chacter presentation form |
env |
environment to look for values in. |
Partitionby and orderby can only be used with a database that supports window-functions (such as PostgreSQL, Spark, and so on).
Supports bquote()
.()
-style name abstraction with the extenson that -
promotes strings to names
(please see here: https://github.com/WinVector/rquery/blob/master/Examples/Substitution/Substitution.md).
Note: if any window/aggregation functions are present then at least one of partitionby or orderby must be non empty. For this purpose partitionby=1 is allowed and means "single partition on the constant 1."
extend node.
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(AUC = 0.6, R2 = 0.2))
NEWCOL <- as.name("v")
NEWVALUE = "zz"
optree <- extend(d, .(NEWCOL) %:=% ifelse(AUC>0.5, R2, 1.0), .(NEWVALUE) %:=% 6)
cat(format(optree))
sql <- to_sql(optree, my_db)
cat(sql)
print(DBI::dbGetQuery(my_db, sql))
DBI::dbDisconnect(my_db)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.