Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
663a46e
Update roxygen version
benjaminhlina Nov 21, 2025
f22760e
Update pkg version to 0.1.1
benjaminhlina Nov 21, 2025
2376c50
Stan
benjaminhlina Nov 21, 2025
f76d914
add in check from utils and remove error messages
benjaminhlina Nov 21, 2025
64df32b
Initial commit of utils
benjaminhlina Nov 21, 2025
5a3fa57
Initial commit of error_functions manual
benjaminhlina Nov 21, 2025
3f838fd
minor reformating
benjaminhlina Nov 21, 2025
271b52e
Change to Stan
benjaminhlina Nov 21, 2025
2cccd1f
check brp with check_logical
benjaminhlina Nov 21, 2025
23f857a
Change to being in alpha numeric order
benjaminhlina Nov 21, 2025
cce0ab6
Change pkg version number to twp-skate
benjaminhlina Nov 21, 2025
649f9b6
change to use check_logical
benjaminhlina Nov 21, 2025
7e21e7c
Remove check_bp and replace with check_logical
benjaminhlina Nov 21, 2025
212f2c2
Cheange check_prior_params to check_numerical
benjaminhlina Nov 21, 2025
ca4045c
update error function manaul
benjaminhlina Nov 21, 2025
d6c73c9
replace defaults with more streamlined version and move error message…
benjaminhlina Nov 21, 2025
4a9d546
More steramlined default values
benjaminhlina Nov 21, 2025
73e9db8
check_logic and reformat
benjaminhlina Nov 21, 2025
ca242b6
Fix arg_name issue and add to manual
benjaminhlina Nov 21, 2025
4973909
Add arg_name to manual
benjaminhlina Nov 21, 2025
4f0e856
Put if else statemnt on the outside of the with and then have with in…
benjaminhlina Nov 21, 2025
248dced
change to using chekc_logical
benjaminhlina Nov 21, 2025
fd71f1a
change to check logiicla
benjaminhlina Nov 21, 2025
8cf90a7
Updated error mesage for add_alpha
benjaminhlina Nov 21, 2025
d7704fc
add in arg_name argument
benjaminhlina Nov 21, 2025
47e9db3
This kept erroring as it kept checkking for data instead of x
benjaminhlina Nov 21, 2025
5bd3677
updated arg_names for manual
benjaminhlina Nov 21, 2025
fe5536c
Inital commit of check_lambda this is a specific type of numerical ar…
benjaminhlina Nov 21, 2025
13d49c9
Add in check_logical and check_lambda
benjaminhlina Nov 21, 2025
6d699f9
Add in check_logical and check_lambda
benjaminhlina Nov 23, 2025
25f4ed8
add check_logical
benjaminhlina Nov 23, 2025
90424b1
change default how they are being handeled
benjaminhlina Nov 23, 2025
85d21c1
Remove commented code
benjaminhlina Nov 23, 2025
7926707
Add check lambda
benjaminhlina Nov 23, 2025
c5c24f2
Add set_priors functions
benjaminhlina Nov 23, 2025
3fd3b54
Change to default_priors
benjaminhlina Nov 23, 2025
567fe62
Add rlang
benjaminhlina Nov 23, 2025
df25995
This is suppose to be nb1
benjaminhlina Nov 23, 2025
0fc95b8
Change - to +
benjaminhlina Nov 23, 2025
13f156c
Fix numerical value test
benjaminhlina Nov 24, 2025
f4da29d
Remove supplied_priors for now
benjaminhlina Nov 24, 2025
aa838f0
Updated supplied pirors manual
benjaminhlina Nov 24, 2025
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
9 changes: 5 additions & 4 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: trps
Type: Package
Title: Bayesian Trophic Position Models using 'stan'
Version: 0.1.0
Title: Bayesian Trophic Position Models using 'Stan'
Version: 0.1.1
Authors@R: c(
person(
"Benjamin L.", "Hlina",
Expand All @@ -23,7 +23,8 @@ Imports:
brms,
cli,
dplyr,
lifecycle
lifecycle,
rlang
Suggests:
bayesplot,
ggdist,
Expand All @@ -37,7 +38,7 @@ Suggests:
tidyr,
viridis
Config/testthat/edition: 3
RoxygenNote: 7.3.2
RoxygenNote: 7.3.3
Roxygen: list(markdown = TRUE)
Depends:
R (>= 4.1.0)
Expand Down
34 changes: 5 additions & 29 deletions R/add_alpha.R
Original file line number Diff line number Diff line change
Expand Up @@ -32,36 +32,12 @@

add_alpha <- function(
data,
abs = FALSE) {
if (!(inherits(data, c(
"data.frame", "tibble",
"data.table"
)))) {
cli::cli_abort(c(
"`data` must be a data.frame, tibble, or data.table",
"i" = "Please provide data.frame"
))
}

rv <- c("d13c", "c1", "c2")

if (!all(rv %in% names(data))) {
mv <- setdiff(rv, names(data))

cli::cli_abort(c(
"The data.frame is missing: {mv}",
"i" = "Please provide {mv}"
))
}

abs = FALSE
) {


if (!(is.logical(abs))) {
cli::cli_abort(c(
"`abs` argument must be a logical value",
"i" = "Please provide TRUE or FALSE"
))
}
check_data_frame(data)
check_column_names(data)
check_logical(abs)

if (isFALSE(abs)) {
dat <- data |>
Expand Down
7 changes: 1 addition & 6 deletions R/one_source_model.R
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,7 @@
#' @export

one_source_model <- function(bp = FALSE) {
if (!(is.logical(bp))) {
cli::cli_abort(c(
"`bp` argument must be a logical value",
"i" = "Please provide TRUE or FALSE"
))
}
check_logical(bp)

if (isFALSE(bp)) {
model <- brms::bf(
Expand Down
10 changes: 1 addition & 9 deletions R/one_source_priors.R
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,7 @@
#' @export

one_source_priors <- function(bp = FALSE) {
if (!(is.logical(bp))) {
cli::cli_abort(c(
"`bp` argument must be a logical value",
"i" = "Please provide TRUE or FALSE"
))
}

check_logical(bp)

if (isFALSE(bp)) {
# set priors
Expand Down Expand Up @@ -71,7 +65,5 @@ one_source_priors <- function(bp = FALSE) {
)
}



return(priors)
}
166 changes: 41 additions & 125 deletions R/one_source_priors_params.R
Original file line number Diff line number Diff line change
Expand Up @@ -55,145 +55,61 @@ one_source_priors_params <- function(
sigma_lb = NULL,
sigma_ub = NULL,
bp = FALSE) {
if (!(is.logical(bp))) {
cli::cli_abort(c(
"`bp` argument must be a logical value",
"i" = "Please provide TRUE or FALSE"
))
}

# ----- n1 -----

# set n1 to 9
if (is.null(n1)) {
n1 <- 9
}

# create error message for n1 priros
if (!is.numeric(n1)) {
cli::cli_abort(c(
"`n1` argument must be a numerical value.",
"i" = "Please provide a numerical value as a piror."
))
}

# set n1_sigma to 1
if (is.null(n1_sigma)) {
n1_sigma <- 1
}
# create error message for n1 priors
if (!is.numeric(n1_sigma)) {
cli::cli_abort(c(
"`n1_sigma` argument must be a numerical value",
"i" = "Please provide a numerical value as a piror"
))
}
# create error message for dn priros


if (is.null(dn)) {
dn <- 3.4
}

if (!is.numeric(dn)) {
cli::cli_abort(c(
"`dn` argument must be a numerical value",
"i" = "Please provide a numerical value as a pirorr"
))
}

# create error message for dn priors
if (is.null(dn_sigma)) {
dn_sigma <- 0.25
}

if (!is.numeric(dn_sigma)) {
cli::cli_abort(c(
"`dn_sigma` argument must be a numerical value",
"i" = "Please provide a numerical value as a piror"
))
}

# ----- tp -----

# set piror for tp
if (is.null(tp_lb)) {
tp_lb <- 2
}
check_logical(bp)

# create error message for tp priros
# ---- defualt values

if (!is.numeric(tp_lb)) {
cli::cli_abort(c(
"`tp_lb` argument must be a numerical value",
"i" = "Please provide a numerical value as a piror"
))
}

if (is.null(tp_ub)) {
tp_ub <- 10
}
defaults <- default_priors("one_source")

# create error message for n1 priors
if (!is.numeric(tp_ub)) {
cli::cli_abort(c(
"`tp_ub` argument must be a numerical value",
"i" = "Please provide a numerical value as a piror"
))
}
# ----- sigma -----
# supplied <- supplied_priors("one_source")
supplied <- list(
n1 = n1,
n1_sigma = n1_sigma,
dn = dn,
dn_sigma = dn_sigma,
tp_lb = tp_lb,
tp_ub = tp_ub,
sigma_lb = sigma_lb,
sigma_ub = sigma_ub
)

# set piror for tp
if (is.null(sigma_lb)) {
sigma_lb <- 0
}

# create error message for tp priros
params <- Map(function(x, d) if (is.null(x)) d else x, supplied, defaults)

if (!is.numeric(sigma_lb)) {
cli::cli_abort(c(
"`sigma_lb` argument must be a numerical value",
"i" = "Please provide a numerical value as a piror"
))
}
lapply(names(params), function(nm) {
check_numerical(params[[nm]], arg_name = nm)
})

if (is.null(sigma_ub)) {
sigma_ub <- 10
}
params_env <- list2env(params, parent = environment())

# create error message for n1 priors
if (!is.numeric(sigma_ub)) {
cli::cli_abort(c(
"`sigma_ub` argument must be a numerical value",
"i" = "Please provide a numerical value as a piror"
))
}
# ---- set prior
priors_params <- if (isTRUE(bp)) {
with(params_env, {

brms::stanvar(n1, name = "n1") +
brms::stanvar(n1_sigma, "n1_sigma") +
brms::stanvar(dn, "dn") +
brms::stanvar(dn_sigma, "dn_sigma") +
brms::stanvar(tp_lb, "tp_lb") +
brms::stanvar(tp_ub, "tp_ub") +
brms::stanvar(sigma_lb, "sigma_lb") +
brms::stanvar(sigma_ub, "sigma_ub")
}
)
} else {

if (isTRUE(bp)) {
priors_params <- brms::stanvar(n1, name = "n1") +
brms::stanvar(n1_sigma, "n1_sigma") +
with(params_env, {
brms::stanvar(dn, "dn") +
brms::stanvar(dn_sigma, "dn_sigma") +
brms::stanvar(tp_lb, "tp_lb") +
brms::stanvar(tp_ub, "tp_ub") +
brms::stanvar(sigma_lb, "sigma_lb") +
brms::stanvar(sigma_ub, "sigma_ub")
brms::stanvar(dn_sigma, "dn_sigma") +
brms::stanvar(tp_lb, "tp_lb") +
brms::stanvar(tp_ub, "tp_ub") +
brms::stanvar(sigma_lb, "sigma_lb") +
brms::stanvar(sigma_ub, "sigma_ub")
}
)
}


# ----- dn -----

if (isFALSE(bp)) {
# ----- set prirors -----

priors_params <- brms::stanvar(dn, "dn") +
brms::stanvar(dn_sigma, "dn_sigma") +
brms::stanvar(tp_lb, "tp_lb") +
brms::stanvar(tp_ub, "tp_ub") +
brms::stanvar(sigma_lb, "sigma_lb") +
brms::stanvar(sigma_ub, "sigma_ub")
}

return(priors_params)
}
16 changes: 4 additions & 12 deletions R/two_source_model.R
Original file line number Diff line number Diff line change
Expand Up @@ -63,23 +63,15 @@

two_source_model <- function(bp = FALSE,
lambda = NULL) {
if (!(is.logical(bp))) {
cli::cli_abort(c(
"`bp` argument must be a logical value",
"i" = "Please provide TRUE or FALSE"
))
}


check_logical(bp)

if (is.null(lambda)) {
lambda <- 1
}

if (!(is.numeric(lambda)) || !(lambda %in% c(1, 2))) {
cli::cli_abort(c(
"`lambda` argument must be a numeric value and either `1` or `2`",
"i" = "Please provide `1` or `2`"
))
}
check_lambda(lambda)

if (lambda == 1) {
if (isFALSE(bp)) {
Expand Down
16 changes: 3 additions & 13 deletions R/two_source_model_ar.R
Original file line number Diff line number Diff line change
Expand Up @@ -82,24 +82,14 @@
two_source_model_ar <- function(
bp = FALSE,
lambda = NULL) {
if (!(is.logical(bp))) {
cli::cli_abort(c(
"`bp` argument must be a logical value",
"i" = "Please provide TRUE or FALSE"
))
}

check_logical(bp)

if (is.null(lambda)) {
lambda <- 1
}

if (!(is.numeric(lambda)) || !(lambda %in% c(1, 2))) {
cli::cli_abort(c(
"`lambda` argument must be a numeric value and either `1` or `2`",
"i" = "Please provide `1` or `2`"
))
}

check_lambda(lambda)
# ---- singe lambda ----
if (lambda == 1) {
# ---- no baseline priors -----
Expand Down
15 changes: 3 additions & 12 deletions R/two_source_model_arc.R
Original file line number Diff line number Diff line change
Expand Up @@ -84,23 +84,14 @@
two_source_model_arc <- function(
bp = FALSE,
lambda = NULL) {
if (!(is.logical(bp))) {
cli::cli_abort(c(
"`bp` argument must be a logical value",
"i" = "Please provide TRUE or FALSE"
))
}

check_logical(bp)

if (is.null(lambda)) {
lambda <- 1
}

if (!(is.numeric(lambda)) || !(lambda %in% c(1, 2))) {
cli::cli_abort(c(
"`lambda` argument must be a numeric value and either `1` or `2`",
"i" = "Please provide `1` or `2`"
))
}
check_lambda(lambda)

# ---- singe lambda ----
if (lambda == 1) {
Expand Down
7 changes: 1 addition & 6 deletions R/two_source_priors.R
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,8 @@
#' @export

two_source_priors <- function(bp = FALSE) {
if (!(is.logical(bp))) {
cli::cli_abort(c(
"`bp` argument must be a logical value",
"i" = "Please provide TRUE or FALSE"
))
}

check_logical(bp)

if (isFALSE(bp)) {
# set priors
Expand Down
Loading