Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: panelPomp
Type: Package
Title: Inference for Panel Partially Observed Markov Processes
Version: 1.7.0.0
Version: 1.7.0.1
Authors@R: c(person(given="Carles",family="Breto",role="aut",email="carles.breto@uv.es",comment=c(ORCID="0000-0003-4695-4902")),
person(given=c("Edward","L."),family="Ionides",role="aut",comment=c(ORCID="0000-0002-4190-0174")),
person(given=c("Aaron","A."),family="King",role="aut",comment=c(ORCID="0000-0001-6159-3207")),
Expand All @@ -14,7 +14,6 @@ Depends:
pomp(>= 4.5.2)
Imports:
methods
RoxygenNote: 7.3.2
Encoding: UTF-8
Collate:
'panelPomp-package.R'
Expand Down Expand Up @@ -47,3 +46,4 @@ Suggests:
bookdown
VignetteBuilder: knitr
LazyData: true
Config/roxygen2/version: 8.0.0
38 changes: 25 additions & 13 deletions R/panel_designs.R
Original file line number Diff line number Diff line change
Expand Up @@ -72,28 +72,40 @@ runif_panel_design <- function (
if (missing(specific_names) | missing(unit_names))
stop(wQuotes(ep,"If used, both ''specific_names'' and ''unit_names'' must be provided","."),call.=FALSE)

if (any(!specific_names %in% lnames))
stop(wQuotes(ep,"No bounds were given for some parameters in ''specific_names''","."),call.=FALSE)
if (any(!specific_names %in% lnames)) {
missing_sp <- specific_names[!specific_names %in% lnames]
sp_names_unit <- paste0(missing_sp, '[', rep(unit_names, length(missing_sp)),']')
if (any(!sp_names_unit %in% lnames)) {
stop(wQuotes(ep,"No bounds were given for some parameters in ''specific_names''","."),call.=FALSE)
}


}

lwr_tmp <- lower[!lnames %in% specific_names]
upr_tmp <- upper[!lnames %in% specific_names]
upr_tmp <- upr_tmp[names(lwr_tmp)]

lwr_spec <- rep(
lower[lnames %in% specific_names], each = length(unit_names)
)
if (any(lnames %in% specific_names)) {
lwr_spec <- rep(
lower[lnames %in% specific_names], each = length(unit_names)
)

unit_labs <- paste0("[", rep(unit_names, length(unique(names(lwr_spec)))), "]")
names(lwr_spec) <- paste0(names(lwr_spec), unit_labs)
unit_labs <- paste0("[", rep(unit_names, length(unique(names(lwr_spec)))), "]")
names(lwr_spec) <- paste0(names(lwr_spec), unit_labs)

upr_spec <- rep(
upper[lnames %in% specific_names], each = length(unit_names)
)
upr_spec <- rep(
upper[lnames %in% specific_names], each = length(unit_names)
)

names(upr_spec) <- names(lwr_spec)
names(upr_spec) <- names(lwr_spec)

lower <- c(lwr_tmp, lwr_spec[!names(lwr_spec) %in% names(lwr_tmp)])
upper <- c(upr_tmp, upr_spec[!names(lwr_spec) %in% names(lwr_tmp)])
lower <- c(lwr_tmp, lwr_spec[!names(lwr_spec) %in% names(lwr_tmp)])
upper <- c(upr_tmp, upr_spec[!names(lwr_spec) %in% names(lwr_tmp)])
} else {
lower <- lwr_tmp
upper <- upr_tmp
}

lower <- lower[sort(names(lower))]
upper <- upper[sort(names(upper))]
Expand Down
2 changes: 1 addition & 1 deletion man/as.Rd

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

8 changes: 4 additions & 4 deletions man/contacts.Rd

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

6 changes: 3 additions & 3 deletions man/mif2.Rd

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

8 changes: 4 additions & 4 deletions man/panelGompertz.Rd

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

8 changes: 4 additions & 4 deletions man/panelMeasles.Rd

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

1 change: 1 addition & 0 deletions man/panelPomp-package.Rd

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

6 changes: 3 additions & 3 deletions man/panelPomp.Rd

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

4 changes: 2 additions & 2 deletions man/panelPomp_methods.Rd

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

8 changes: 4 additions & 4 deletions man/panelRandomWalk.Rd

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

8 changes: 4 additions & 4 deletions man/panel_loglik.Rd

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

6 changes: 3 additions & 3 deletions man/pfilter.Rd

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

14 changes: 14 additions & 0 deletions tests/panel_designs.R
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,20 @@ test(
c(NSEQ, 6L)
)

test(
{
df <- runif_panel_design(
lower = c('a[u1]' = 0, 'b' = 10, 'a[u2]' = 0.5),
upper = c('a[u1]' = 1, 'b' = 15, 'a[u2]' = 0.75),
specific_names = c('a'),
unit_names = paste0(rep('u', 2), 1:2),
nseq = NSEQ
)
c(nrow(df), ncol(df))
},
c(NSEQ, 3L)
)

err <- wQuotes("Error : in ''runif_panel_design'': upper values should be at least as large as lower ones.\n")

test(
Expand Down
19 changes: 17 additions & 2 deletions tests/panel_designs.Rout.save
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

R version 4.4.1 (2024-06-14) -- "Race for Your Life"
Copyright (C) 2024 The R Foundation for Statistical Computing
R version 4.6.1 (2026-06-24) -- "Happy Hop"
Copyright (C) 2026 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu

R is free software and comes with ABSOLUTELY NO WARRANTY.
Expand Down Expand Up @@ -55,6 +55,21 @@ Type 'q()' to quit R.
+ )
[1] TRUE
>
> test(
+ {
+ df <- runif_panel_design(
+ lower = c('a[u1]' = 0, 'b' = 10, 'a[u2]' = 0.5),
+ upper = c('a[u1]' = 1, 'b' = 15, 'a[u2]' = 0.75),
+ specific_names = c('a'),
+ unit_names = paste0(rep('u', 2), 1:2),
+ nseq = NSEQ
+ )
+ c(nrow(df), ncol(df))
+ },
+ c(NSEQ, 3L)
+ )
[1] TRUE
>
> err <- wQuotes("Error : in ''runif_panel_design'': upper values should be at least as large as lower ones.\n")
>
> test(
Expand Down
Loading