--- title: "Logistic Example" author: "John Mount" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Logistic Example} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- We can work an example similar to the [`rquery`](https://winvector.github.io/rquery/) [example](https://winvector.github.io/rquery/index.html) using a [`data.table`](https://rdatatable.gitlab.io/data.table/) back-end. ```{r} library("rqdatatable") ``` ```{r} # data example dL <- wrapr::build_frame( "subjectID", "surveyCategory" , "assessmentTotal" | 1 , "withdrawal behavior", 5 | 1 , "positive re-framing", 2 | 2 , "withdrawal behavior", 3 | 2 , "positive re-framing", 4 ) ``` ```{r} scale <- 0.237 # example rquery pipeline rquery_pipeline <- local_td(dL) %.>% extend_nse(., one = 1) %.>% extend_nse(., probability = exp(assessmentTotal * scale)/ sum(exp(assessmentTotal * scale)), count = sum(one), partitionby = 'subjectID') %.>% extend_nse(., rank = cumsum(one), partitionby = 'subjectID', orderby = c('probability', 'surveyCategory')) %.>% extend_nse(., isdiagnosis = rank == count, diagnosis = surveyCategory) %.>% select_rows_nse(., isdiagnosis == TRUE) %.>% select_columns(., c('subjectID', 'diagnosis', 'probability')) %.>% orderby(., 'subjectID') ``` Show expanded form of query tree. ```{r, comment=""} cat(format(rquery_pipeline)) ``` Execute the calculation. ```{r} ex_data_table(rquery_pipeline) ```