Skip to content

Commit

Permalink
definition and windows compiling
Browse files Browse the repository at this point in the history
  • Loading branch information
stevencarlislewalker committed Nov 1, 2023
1 parent cc49fbc commit da7186b
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 29 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,5 @@ jobs:
- uses: r-lib/actions/check-r-package@v2
with:
upload-snapshots: true
build_args: 'c("--no-manual", "--no-build-vignettes")'
error_on: '"error"'
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,15 @@ doc-update: R/*.R misc/dev/dev.cpp

pkg-build:: ../macpan2_$(VERSION).tar.gz
../macpan2_$(VERSION).tar.gz: DESCRIPTION man/*.Rd R/*.R src/*.cpp tests/testthat/test-*.R tests/testthat.R inst/starter_models/**/*.csv inst/starter_models/**/*.json
R CMD build --no-build-vignettes .
cd .. && R CMD build --no-build-vignettes macpan2


pkg-check: ../macpan2_$(VERSION).tar.gz
R CMD check ../macpan2_$(VERSION).tar.gz
cd .. && R CMD check macpan2_$(VERSION).tar.gz


pkg-install: ../macpan2_$(VERSION).tar.gz
R CMD INSTALL --no-multiarch --install-tests ../macpan2_$(VERSION).tar.gz
cd .. && R CMD INSTALL --no-multiarch --install-tests macpan2_$(VERSION).tar.gz


compile-dev: misc/dev/dev.cpp
Expand Down
4 changes: 2 additions & 2 deletions R/formula_data.R
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FormulaData = function(frame, reference_index_list) {
FormulaData = function(frame, reference_index_list, labelling_names_list) {
self = Base()
self$frame = frame
self$reference_index_list = reference_index_list

self$labelling_names_list = labelling_names_list
return_object(self, "FormulaData")
}

Expand Down
28 changes: 17 additions & 11 deletions R/link.R
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,15 @@
#' ```
#'
#' @export
Link = function(frame, column_map, reference_index_list) {
Link = function(frame, column_map, reference_index_list, labelling_names_list) {
self = Base()
self$frame = frame
self$column_map = column_map
self$reference_index_list = reference_index_list
self$labelling_names_list = function() {
lapply(self$reference_index_list, getElement, "labelling_names")
}
self$labelling_names_list = labelling_names_list
# function() {
# lapply(self$reference_index_list, getElement, "labelling_names")
# }
self$table_names = function() names(self$column_map)
self$labels_for = list()
self$labels_frame = function() {
Expand Down Expand Up @@ -65,6 +66,7 @@ Link = function(frame, column_map, reference_index_list) {
Link(self$frame[i, , drop = FALSE]
, column_map = self$column_map
, reference_index_list = self$reference_index_list
, labelling_names_list = self$labelling_names_list
)
}
self$partition = self$partition_for[[1L]]() ## hack! should probably have a method and then change the partition field in Index to a method as well
Expand Down Expand Up @@ -102,10 +104,10 @@ FrameGetter = function(link, dimension_name) {
self$get_partition = function() self$get_frame() |> Partition()
self$get_index = function() Index(
self$get_partition(),
self$link$labelling_names_list()[[self$dimension_name]]
self$link$labelling_names_list[[self$dimension_name]]
)
self$get_labels = function() {
i = self$link$labelling_names_list()[[self$dimension_name]]
i = self$link$labelling_names_list[[self$dimension_name]]
f = self$get_frame()[, i, drop = FALSE]
l = as.list(f)
paste_args = c(l, sep = ".")
Expand All @@ -125,7 +127,7 @@ initial_reference_index_list = function(index, dimension_name) {
setNames(list(index), dimension_name)
}

## TODO XXX

initial_labelling_names_list = function(labelling_names, dimension_name) {
setNames(
list(labelling_names),
Expand Down Expand Up @@ -205,14 +207,16 @@ merge_util = function(x, y, by.x, by.y) {

z_column_map = c(x_cmap, y_cmap)
z_reference_index_list = c(x$reference_index_list, y$reference_index_list)
z_lab_names_list = c(x$labelling_names_list, y$labelling_names_list)

## ----
## wrap up the result with provenance-preserving column map
## ----
Link(
z,
z_column_map,
z_reference_index_list
z_reference_index_list,
z_lab_names_list
)
}

Expand All @@ -230,10 +234,11 @@ filter_by_list = function(x_orig, y_orig, by_list) {
}

#' @export
init_merge = function(frame, dimension_name, reference_index) {
init_merge = function(frame, dimension_name, reference_index, labelling_names) {
Link(frame
, initial_column_map(names(frame), dimension_name)
, initial_reference_index_list(reference_index, dimension_name)
, initial_labelling_names_list(labelling_names, dimension_name)
)
}

Expand Down Expand Up @@ -288,7 +293,7 @@ explicit_provenance = function(x, col_nm) {
)

f = x$frame
l = x$labelling_names_list()
l = x$labelling_names_list

orig_col = f[[col_nm]]
for (tab_nm in tabs_to_fix) {
Expand All @@ -297,6 +302,7 @@ explicit_provenance = function(x, col_nm) {
m[[tab_nm]][[col_nm]] = new_col_nm
}
f[[col_nm]] = NULL
## TODO: update with four-arg form of Link
Link(f, m, l)
}

Expand Down Expand Up @@ -370,7 +376,7 @@ print.summary.Link = function(x, ...) {
names.Link = function(x) names(x$frame)

#' @export
labelling_names.Link = function(x) x$labelling_names_list()
labelling_names.Link = function(x) x$labelling_names_list


link_format_picker = function(x
Expand Down
16 changes: 8 additions & 8 deletions R/mp.R
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ mp_union.Link = function(...) {
) |> stop()
}
## TODO: should really be checking for reference_index_list
labelling_names_list = method_apply(l, "labelling_names_list") |> unique()
labelling_names_list = lapply(l, getElement, "labelling_names_list") |> unique()
if (length(labelling_names_list) != 1L) {
msg_colon(
msg(
Expand All @@ -157,7 +157,7 @@ mp_union.Link = function(...) {
) |> stop()
}
frame = mp_rbind(...)
FormulaData(frame, l[[1L]]$reference_index_list)
FormulaData(frame, l[[1L]]$reference_index_list, l[[1L]]$labelling_names_list)
}

#' @export
Expand Down Expand Up @@ -194,7 +194,7 @@ mp_choose = function(x, subset_name, ...) {
p = p$filter(vals, .wrt = cc)
}
}
init_merge(p$frame(), subset_name, x$reference_index())
init_merge(p$frame(), subset_name, x$reference_index(), x$labelling_names)
}

#' @export
Expand All @@ -205,7 +205,7 @@ mp_choose_out = function(x, subset_name, ...) {
vals = l[[cc]]
p = p$filter_out(vals, .wrt = cc)
}
init_merge(p$frame(), subset_name, x$labelling_names)
init_merge(p$frame(), subset_name, x$reference_index(), x$labelling_names)
}

#' @export
Expand Down Expand Up @@ -375,10 +375,10 @@ mp_rename = function(x, ...) {
}

#' @export
mp_select = function(basis, grouping_dimension) {
frame = basis$partition$select(to_names(grouping_dimension))$frame()
nms = names(frame)[names(frame) %in% basis$labelling_names]
frame |> Index(labelling_names = nms, basis$partition)
mp_select = function(index, grouping_dimension) {
frame = index$partition$select(to_names(grouping_dimension))$frame()
nms = names(frame)[names(frame) %in% index$labelling_names]
frame |> Index(labelling_names = nms, index)
}

#' @export
Expand Down
2 changes: 1 addition & 1 deletion man/Link.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 7 additions & 3 deletions misc/experiments/refactorcpp.R
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,19 @@ trans_rates = (trans_rates_sir
|> mp_cartesian(contact)
)

mp_join(
xx = mp_join(
alive = mp_subset(state, Vital = "alive"),
N = mp_select(state, "Loc.Age"),
alive.N = "Loc.Age"
)

mp_choose(mp_select(state, "Loc.Age"), "N")


mp_labels
xx$reference_index_list$N$labelling_names
yy = mp_formula_data(xx)
yy$reference_index_list

yy = Vector(state)
yy$numbers()
yy$set_numbers(Loc = c(cal = 1000, ham = 2000, que = 3000), Epi = "S")
Expand Down Expand Up @@ -118,8 +122,8 @@ trans_decomp = mp_decompose(
, infectivity = "Loc"
, susceptibility = "AgeInfection"
)
trans_decomp$linked_indices

trans_decomp
trans_decomp$formula
trans_decomp$input_formula
macpan2:::update_formula(g ~ y * x * z, g ~ friend)
Expand Down
1 change: 0 additions & 1 deletion src/macpan2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,6 @@ class ArgList {
int j = m.rows();
if (j == 1) {
std::vector<int> v = get_as_int_vec(i);
// std::cout << "HI" << v[0] << std::endl;
return v[0];
}
return j;
Expand Down

0 comments on commit da7186b

Please sign in to comment.