The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

R mapping

John Mount

2023-08-19

rqdatatable re-maps a number of symbols for data.table translation (for rquery/SQL re-mappings, please see here). For instance, please take note of the n() and rank() functions in the following code example.

library("rqdatatable")
library("wrapr")

dL <- build_frame(
  "subjectID", "surveyCategory"     , "assessmentTotal"|
    1          , "withdrawal behavior", 5              |
    1          , "positive re-framing", 2              |
    2          , "withdrawal behavior", 3              |
    2          , "positive re-framing", 4              |
    2          , "other"              , 0              )

scale <- 0.237
rquery_pipeline <- local_td(dL) %.>%
  extend_nse(.,
             probability :=
               exp(assessmentTotal * scale)/
               sum(exp(assessmentTotal * scale)),
             count := n(),
             rank := rank(),
             orderby = c("assessmentTotal", "surveyCategory"),
             reverse = c("assessmentTotal"),
             partitionby = 'subjectID')  %.>%
  orderby(., c("subjectID", "probability"))
res <- ex_data_table(rquery_pipeline, tables = list(dL = dL))
knitr::kable(res)
subjectID surveyCategory assessmentTotal probability count rank
1 positive re-framing 2 0.3293779 2 2
1 withdrawal behavior 5 0.6706221 2 1
2 other 0 0.1780446 3 3
2 withdrawal behavior 3 0.3625035 3 2
2 positive re-framing 4 0.4594519 3 1

The common re-mappings are can be found in the package-private variable rqdatatable:::data_table_extend_fns.

str(rqdatatable:::data_table_extend_fns)
## List of 6
##  $ ngroup    :List of 2
##   ..$ data.table_version: chr ".GRP"
##   ..$ need_one_col      : logi TRUE
##  $ rank      :List of 2
##   ..$ data.table_version: chr "cumsum(rqdatatable_temp_one_col)"
##   ..$ need_one_col      : logi TRUE
##  $ row_number:List of 2
##   ..$ data.table_version: chr "cumsum(rqdatatable_temp_one_col)"
##   ..$ need_one_col      : logi TRUE
##  $ n         :List of 2
##   ..$ data.table_version: chr "sum(rqdatatable_temp_one_col)"
##   ..$ need_one_col      : logi TRUE
##  $ random    :List of 2
##   ..$ data.table_version: chr "runif(.N)"
##   ..$ need_one_col      : logi FALSE
##  $ rand      :List of 2
##   ..$ data.table_version: chr "runif(.N)"
##   ..$ need_one_col      : logi FALSE

The column rqdatatable_temp_one_col is introduced (and removed) from intermediate data frames as needed.

These mappings help allow the same operator pipeline to be used in R and in a database. For the database mappings please see here.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.