Skip to content

Commit 6fdf053

Browse files
change to pull the subset argument
1 parent d9b9b60 commit 6fdf053

1 file changed

Lines changed: 27 additions & 6 deletions

File tree

R/survfit2_p.R

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,32 @@ survfit2_p <- function(x, pvalue_fun = format_p, prepend_p = TRUE, rho = 0) {
4242
cli_abort("The {.fun survfit2_p} does not support multi-state models.")
4343
}
4444

45-
survival::survdiff(
46-
formula = .extract_formula_from_survfit(x),
47-
data = .extract_data_from_survfit(x),
48-
rho = rho
49-
) %>%
45+
#extract subset argument from the original survfit call
46+
call_list <- x$call %>% as.list()
47+
subset_arg <- call_list[["subset"]]
48+
49+
#call survdiff with subset argument if it exists
50+
if (!is.null(subset_arg)) {
51+
# do.call to properly pass the subset argument
52+
survdiff_result <- do.call(
53+
survival::survdiff,
54+
list(
55+
formula = .extract_formula_from_survfit(x),
56+
data = .extract_data_from_survfit(x),
57+
subset = subset_arg,
58+
rho = rho
59+
),
60+
envir = x$.Environment
61+
)
62+
} else {
63+
survdiff_result <- survival::survdiff(
64+
formula = .extract_formula_from_survfit(x),
65+
data = .extract_data_from_survfit(x),
66+
rho = rho
67+
)
68+
}
69+
70+
survdiff_result %>%
5071
broom::glance() %>%
5172
dplyr::pull("p.value") %>%
5273
pvalue_fun() %>%
@@ -55,4 +76,4 @@ survfit2_p <- function(x, pvalue_fun = format_p, prepend_p = TRUE, rho = 0) {
5576
prepend_p & grepl(pattern = "^<|^>", x = .) ~ paste0("p", .),
5677
prepend_p ~ paste0("p=", .)
5778
)}
58-
}
79+
}

0 commit comments

Comments
 (0)