From b60cea7b68012b1cee4f5446ee7f7d5894c74972 Mon Sep 17 00:00:00 2001 From: Gregory Chen Date: Fri, 24 May 2024 07:02:31 +0000 Subject: [PATCH 01/18] add unanchored data --- R/data_unanchored.R | 20 +++++++++++++++++ data-raw/dummy_unanchored.R | 43 ++++++++++++++++++++++++++++++++++++ data/adrs_sat.rda | Bin 0 -> 1061 bytes data/adsl_sat.rda | Bin 0 -> 2345 bytes data/adtte_sat.rda | Bin 0 -> 6561 bytes data/agd_sat.rda | Bin 0 -> 274 bytes data/centered_ipd_sat.rda | Bin 0 -> 3945 bytes data/pseudo_ipd_sat.rda | Bin 0 -> 3041 bytes 8 files changed, 63 insertions(+) create mode 100644 R/data_unanchored.R create mode 100644 data-raw/dummy_unanchored.R create mode 100644 data/adrs_sat.rda create mode 100644 data/adsl_sat.rda create mode 100644 data/adtte_sat.rda create mode 100644 data/agd_sat.rda create mode 100644 data/centered_ipd_sat.rda create mode 100644 data/pseudo_ipd_sat.rda diff --git a/R/data_unanchored.R b/R/data_unanchored.R new file mode 100644 index 00000000..2df16fa4 --- /dev/null +++ b/R/data_unanchored.R @@ -0,0 +1,20 @@ +#' Dummy Single-arm Trial Data for Unanchored MAIC +#' +#' These datasets contains adsl_sat, adtte_sat, adrs_sat, +#' agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) +#' +#' @format A data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' +#' @source These datasets are generated by the dummy_unanchored.R script. +#' +#' @keywords dataset +#' +"adsl_sat" +"adtte_sat" +"pseudo_ipd_sat" +"agd_sat" +"centered_ipd_sat" +"adrs_sat" diff --git a/data-raw/dummy_unanchored.R b/data-raw/dummy_unanchored.R new file mode 100644 index 00000000..08620757 --- /dev/null +++ b/data-raw/dummy_unanchored.R @@ -0,0 +1,43 @@ +#### create datasets for unanchored case #### +## adsl_sat, adtte_sat, adrs_sat, agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) + +devtools::load_all() +# Read in relevant ADaM data and rename variables of interest +adsl_sat <- read.csv(system.file("extdata", "adsl.csv", + package = "maicplus", + mustWork = TRUE +)) +adtte_sat <- read.csv(system.file("extdata", "adtte.csv", + package = "maicplus", + mustWork = TRUE +)) +adtte_sat$TIME <- adtte_sat$AVAL +adtte_sat$EVENT <- adtte_sat$EVNT +adtte_sat <- adtte_sat[adtte_sat$ARM == "A", , drop = FALSE] +adsl_sat <- adsl_sat[adsl_sat$USUBJID %in% adtte_sat$USUBJID, , drop = FALSE] + +### AgD +# Baseline aggregate data for the comparator population +agd_sat <- read.csv(system.file("extdata", "aggregate_data_example_1.csv", + package = "maicplus", mustWork = TRUE +)) +# for time-to-event endpoints, pseudo IPD from digitalized KM +pseudo_ipd_sat <- read.csv(system.file("extdata", "psuedo_IPD.csv", + package = "maicplus", + mustWork = TRUE +)) +pseudo_ipd_sat$ARM <- "B" + +### Centered IPD +agd_sat <- process_agd(agd_sat) +adsl_sat <- dummize_ipd(adsl_sat, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) +centered_ipd_sat <- center_ipd(ipd = adsl_sat, agd = agd_sat) + +### Binary +adrs_sat <- read.csv(system.file("extdata", "adrs.csv", package = "maicplus", mustWork = TRUE)) +adrs_sat$RESPONSE <- adrs_sat$AVAL + +### Output +usethis::use_data(adsl_sat, adtte_sat, agd_sat, pseudo_ipd_sat, centered_ipd_sat, adrs_sat, + internal = FALSE, overwrite = TRUE +) diff --git a/data/adrs_sat.rda b/data/adrs_sat.rda new file mode 100644 index 0000000000000000000000000000000000000000..7fa37b66618c6f79e0262879d4c8e3043a29a4f9 GIT binary patch literal 1061 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 literal 0 HcmV?d00001 diff --git a/data/agd_sat.rda b/data/agd_sat.rda new file mode 100644 index 0000000000000000000000000000000000000000..06282d76a04e1bcea3274d53b28b40f35d0bf05e GIT binary patch literal 274 zcmV+t0qy=mT4*^jL0KkKSwDy5Q~&_Af6o8&NB{ywcmVFN-ej+bo}d5-fB=v{0RWN# zFaXwALP*5ZO*ClHlMny_pu}W0Q2i)CrkWZjqyW*N004TK0006}BxE!i0000P0000A z$p8WtkOBpOEy8)@5rrlL!mSw){)m)^L153#fD1$<-b`!5A5joYnq6%lRaIWk4n}DBmfMNOkD5p4>sln3X&M1{D~<+Vb~o(6B!+ Yx~0SZgpxv(%pb+vkxmpO58?S00AQPLwEzGB literal 0 HcmV?d00001 diff --git a/data/centered_ipd_sat.rda b/data/centered_ipd_sat.rda new file mode 100644 index 0000000000000000000000000000000000000000..70ac897be1b44a141c3a3d3c8528b383fc218dc0 GIT binary patch literal 3945 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 literal 0 HcmV?d00001 diff --git a/data/pseudo_ipd_sat.rda b/data/pseudo_ipd_sat.rda new file mode 100644 index 0000000000000000000000000000000000000000..40df7724b2f3d8324aac4f8ca7507f9e2046a966 GIT binary patch literal 3041 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 literal 0 HcmV?d00001 From e2f8ffa34347259aee729420384fc2d156229dd5 Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 07:05:09 +0000 Subject: [PATCH 02/18] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/adsl_sat.Rd | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 man/adsl_sat.Rd diff --git a/man/adsl_sat.Rd b/man/adsl_sat.Rd new file mode 100644 index 00000000..4d0fc24f --- /dev/null +++ b/man/adsl_sat.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data_unanchored.R +\docType{data} +\name{adsl_sat} +\alias{adsl_sat} +\title{Dummy Single-arm Trial Data for Unanchored MAIC} +\format{ +A data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} +} +\source{ +These datasets are generated by the dummy_unanchored.R script. +} +\usage{ +adsl_sat +} +\description{ +These datasets contains adsl_sat, adtte_sat, adrs_sat, +agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) +} +\keyword{dataset} From 57b4cff4eaf8887dfae5eb2d049d39948ab1a9ed Mon Sep 17 00:00:00 2001 From: Gregory Chen Date: Fri, 24 May 2024 07:28:59 +0000 Subject: [PATCH 03/18] add twt data --- data-raw/dummy_anchored.R | 75 ++++++++++++++++++++++++++++++++++++ data-raw/dummy_unanchored.R | 4 +- data/adsl_twt.rda | Bin 0 -> 6892 bytes data/adtte_twt.rda | Bin 0 -> 11528 bytes data/agd.rda | Bin 0 -> 310 bytes data/agd_sat.rda | Bin 274 -> 0 bytes data/centered_ipd_twt.rda | Bin 0 -> 9548 bytes data/pseudo_ipd_twt.rda | Bin 0 -> 7006 bytes 8 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 data-raw/dummy_anchored.R create mode 100644 data/adsl_twt.rda create mode 100644 data/adtte_twt.rda create mode 100644 data/agd.rda delete mode 100644 data/agd_sat.rda create mode 100644 data/centered_ipd_twt.rda create mode 100644 data/pseudo_ipd_twt.rda diff --git a/data-raw/dummy_anchored.R b/data-raw/dummy_anchored.R new file mode 100644 index 00000000..788fe6ae --- /dev/null +++ b/data-raw/dummy_anchored.R @@ -0,0 +1,75 @@ +#### create anchored example datasets #### + +devtools::load_all() +library(flexsurv) +set.seed(2024) + +# create adsl_twt +adsl <- read.csv(system.file("extdata", "adsl.csv", + package = "maicplus", + mustWork = TRUE +)) +adsl$USUBJID <- paste0("xx", adsl$USUBJID) +adsl2 <- adsl +adsl2$USUBJID <- sample(size = nrow(adsl2), paste0("yy", adsl2$USUBJID), replace = FALSE) +adsl2 <- adsl2[order(adsl2$USUBJID), ] + +adsl_twt <- rbind(adsl, adsl2) + +# create adtte_twt +adtte <- read.csv(system.file("extdata", "adtte.csv", + package = "maicplus", + mustWork = TRUE +)) +adtte$TIME <- adtte$AVAL +adtte$EVENT <- adtte$EVNT +adtte$USUBJID <- paste0("xx", adtte$USUBJID) + +adtte2 <- adtte +adtte2$ARM <- "C" +adtte2$TIME <- adtte2$TIME * runif(nrow(adtte2), 0.15, 0.3) +fit_C <- flexsurv::flexsurvspline(formula = Surv(TIME, EVENT) ~ 1, data = adtte2, k = 3) +tmp <- simulate(fit_C, nsim = 1, seed = 1234, newdata = adtte2, censtime = max(adtte$TIME)) +adtte2$TIME <- tmp$time_1 +adtte2$EVENT <- tmp$event_1 +adtte2$USUBJID <- paste0("yy", adtte2$USUBJID) + +adtte_twt <- rbind(adtte, adtte2) + + +data("agd") +# create pseudo_ipd_twt +pseudo_ipd <- read.csv(system.file("extdata", "psuedo_IPD.csv", + package = "maicplus", + mustWork = TRUE +)) +pseudo_ipd$ARM <- "B" +pseudo_ipd2 <- adtte2[, c("TIME", "EVENT", "ARM")] +names(pseudo_ipd2) <- c("Time", "Event", "ARM") +tmp <- simulate(fit_C, nsim = 1, seed = 4321, newdata = adtte2, censtime = max(pseudo_ipd$Time)) +pseudo_ipd2$Time <- tmp$time_1 +pseudo_ipd2$Event <- tmp$event_1 + +pseudo_ipd_twt <- rbind(pseudo_ipd, pseudo_ipd2) + +# create centered adsl_twt +agd <- process_agd(agd) +adsl_twt <- dummize_ipd(adsl_twt, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) +centered_ipd_twt <- center_ipd(ipd = adsl_twt, agd = agd) + + +### Output +usethis::use_data(adsl_twt, adtte_twt, pseudo_ipd_twt, centered_ipd_twt, adrs_sat, + internal = FALSE, overwrite = TRUE +) + + + + + + + + + + + diff --git a/data-raw/dummy_unanchored.R b/data-raw/dummy_unanchored.R index 08620757..179c3c63 100644 --- a/data-raw/dummy_unanchored.R +++ b/data-raw/dummy_unanchored.R @@ -18,7 +18,7 @@ adsl_sat <- adsl_sat[adsl_sat$USUBJID %in% adtte_sat$USUBJID, , drop = FALSE] ### AgD # Baseline aggregate data for the comparator population -agd_sat <- read.csv(system.file("extdata", "aggregate_data_example_1.csv", +agd <- read.csv(system.file("extdata", "aggregate_data_example_1.csv", package = "maicplus", mustWork = TRUE )) # for time-to-event endpoints, pseudo IPD from digitalized KM @@ -38,6 +38,6 @@ adrs_sat <- read.csv(system.file("extdata", "adrs.csv", package = "maicplus", mu adrs_sat$RESPONSE <- adrs_sat$AVAL ### Output -usethis::use_data(adsl_sat, adtte_sat, agd_sat, pseudo_ipd_sat, centered_ipd_sat, adrs_sat, +usethis::use_data(adsl_sat, adtte_sat, agd, pseudo_ipd_sat, centered_ipd_sat, adrs_sat, internal = FALSE, overwrite = TRUE ) diff --git a/data/adsl_twt.rda b/data/adsl_twt.rda new file mode 100644 index 0000000000000000000000000000000000000000..a44ed0363cb230b15348ba8c73420e97af843e55 GIT binary patch literal 6892 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 VkA=Z%6!fCZiD4CIAWmfSPos zvwWwN01>=J4GawoK|vGC1Ho5ig)3o)Yv<+ylwgDbDA3ISfbf8H1ZD_%nT+bGKQ#qM z5q3U$z58ofL~dAdv0MfUT(l$>7Gklgb+)Bdfn;=$B+yi(0CtEaQ;bp`3qJ!iBM&1N zabScIh@4JnRh*Uq#;3^ufvxhtz)%#YD?wh=RVC#_b8@@r>SrX=DQUpHprNG67{w{j zPypx`sGCK#cXD=#0AG$K9b{D?k6coCL8v-PEreh>?5QY66Y(3QI)*}seOo+Lj1iAS z@R*-nTKqOAfgd-=nVn2l+CUC73p0xXKvMz$K$C<7P{pBQ!d7{?Fp@C>!cYaXmLLEj z06+*Dg#QkhgqZ~tDZRa@(}%sim3=QsESM6I2i+DY&HnZNBa;9)|9@5ft^RoZiR4$I zx7p;fznyF#&?JmJ05B8|0uzG%0{`u`iYEjNPQ&BB75D+7y+0Kg1T$!(lhW&{8$ibW$~ z{Uvnuf}!G5R1(YlyO2bID4q3vh+RNuC2|pR42@4wsn344y&`aP2+#%N!YQ9y84@M8 z<&r;?eK4sbZfFY_{@jMBMNc2Q7NewItE3)Dk5o4x`5r#Fd#m~x7r54|J@; zKrvW!VPPChDrx^fasLD$0+kYZI!nA#)=+SvnuszR5)2SLNCQSpd~YnA01E|+gNev7 zh#0R)o(GVQ*Py4ThYrT3!bBi9mrE33DcsSakzhfmiAV0L=L;@LG&H>?r2>g8Y0lp6+M^zhq?gpkCruZ;{(irF*<6 z7O#?7=qz9>ai>gfZNSvo#~5K~IytP&4UnW(B>#3AM|}$zYO>ZsfSI@>MZS06FJfNUzY$@h;4ML0>oKZ z#LpjanaXC|jHs7a@0z(#y z1dwffEElaxAsXDk94e(e#On@^eTAU%Q<|VoxL}0-=kKBB9wS4U69d2U2KdE`sVU@{+pdtV#mp48E#erM)s^DY;S>4_sjvS;?6}So#_SK#EGr$97;s4 zW|4mqE3d^W-Gr-zuE)ptViunSHmTrCZqEBz>F*vkPy{%~-qd5HIcB@Wioz#n8f~~H zUxbk2d%+9Hnz3;V4D7jGV~g0)aM+z+C5i1gs8BVQD5|E77AO0ynShGWun4dKqL!NG z>h&(e@w5VTa3|3CR`kXJ$Z&*#Z_>7G7Gdf8z+(3~d`GDN@km#b(dpclpZmG%sqm}C-@;al);7NVZ23Y05#Mgx8{h~^so3+5)vTo; zckIIqoT{b5qQu1@1bx6$ROT0?ER3n=Dmwk8ku4?Q-Tuxa<2V`vSu%JWdp|R(NJked z=epRTFGg}sxM^-K9f+^q$=X9|rOZ{f8kHX$9x!Bz0`0iPg3G*~Sl_|RE&JfaNVr^Y zay#n7B(7cSqOg`Y3T=$9j3sIuzU>{mb>eEx@&J9W{tY3(JP$NMmXKz@kSx>BcUI$s zW^g&KThPzzMQeE}mo-;6nz?syW&0#`>|OlDmL*N`*xl(S$2|yqxcI2sKa*}rdV2A- zaFI{$c+*DT?xIyN%IuDhhdY$B4+#n@F8DsWSM2jrpA~aHa5RXETQL1Q;{r-{=BR1{ zo$ch^WY$#1_pW0L$zW)%-$V9PcJN}kbQ@@y!E}oP;E?-9;_n0b(i!YD8f0o+R798f zbv*LjQ_=bMU*9i{62+@jCNE8c`&_{h%tqCo_S=H-(xO1BDI8^sFGLwT08hMtm<9zJ zJxN)ojOhrfM43Ma`F}pUIV@Tp}?ZoOxckp0=TOdt$isSo`q#bZ*!;pYa>w^__M7<+1ux{s>gZHIddp z>jd-ipCo0tY@9u^tgN3kmhW4?V}WE0j(U~_j`}|-jbl#7EIazLAKTnzWj{>0Cl_|% zHceoKN5+kMMdb+Vlz5imlPMEKe;q>F&0+pvXv7eLEc2-1|8T-c!$|+-M#HJX-{GHe zj>)(=UQqu+d@#=bchLXD{1@>5yE5focd0n@gJ?})4E#_D#p-a7JCb-%#f;Rr9l}RKn14SplG1RmUQf`rJ`+{JWItu{tl$)trC)UU@LC$~n2x`C@~LXa z#=J5+Y`uvUtSxV@aJ8+S-9`Rx_Wc;S;s2L$`cL^IFq+_T$e(1fteoQ?chM)6m7RUA z@$&MdLU*5*6;9SIi#6HX4Kmk?vn@kt`?PE1O8K3`r6&1~j*d=vn1HTLC!@c({~1sh z;a@w+gl)@Q#(D|Lxsj?@g7$OA<2qIUwC`nq6X%e0(0Sn4IU;_^&QKx8| zHEsTd1^I*g|Jp6~Yv%>tPOovddfTPi{{*gj`1WV7OsRY8|I7S)Lef(O>IAWa;UOHR zhr{#u2}-)y-1rwP{%xca{2A7v{JTKRoQpl@e!o~e;+4O$dG5haiuUm@6I3Bo;a>~y zKMrYw)GawT{7Kxu{u}zgRsL>-zblck8r5^%S?>E;$kfI@=H6eA+j>-NF=ifWF z2hy~1dV6L27ZWZX?(g0QkfjP`^64>g32Bb+E3!|pOrW%{+jIRRiApBt-`T1p7n2<~ zFDI$=*c&&C6`O85x88m)*mz9B=kdvx(h(y&jkfk*Q;JGZZWTaOrgY_X1h zij22Uc}r=WNOzj3vvDX)N0mYPFojNROrp%d)rmxt_Q~!YjI`-!&JT0`vz}AE8T|*S zHK7G5FROL2Ea&JNA%!RYmF*GH-`o~x8Rb23i@$y~ANsB0wH0{z(hGRy+@)`GFhk7w z<_2C@RTr945r6VF(JX0ozNZW})%HAmu+Xe@=iTZTOZTunKGCk4%e>l=7Fd*Txn4z+ zeym!5o;Z0WO|g&P-Vo_-5&DySen+-5ygwF9DJd9j)y=5_udND%y$h|gL%=|&L7+s( zKw_@N9|w~haiB8vyxkG{>y_DsDndBuVoaGSgi?Evwfm5pHmBDA48Nl`pa*Np9o~n_ zvapp#u@ty_$2*Y3IqQzLI4Ol+6DG}MZL%T-ilSP&8sM?HP#J4o%?=KUR3RyVAXBSd zL`-_wNAn2zUtC}-rBYFBv*Ryl3wWNMXDJj#s$q;0U(@vJxvV70;c~D^-!=IjLsQm) zIKvfa#__PaO9?$TA^5J$AvOwGCl&ZAh&x^+CV+buV}+Z6(P(z{U$2Dno$Po*m``EjQXJoNPVq+*pZ@|19w zKUS3~6^Fr05|2kH;T>?g$eOr&D>6glW-NPuEm!15j5kzRAk!kCT-0CZp?)QqXPSBF zxfp#bAzZn&z)c;-56O?2!o(A^AmNzTv);o+spzG4#Vf4*ZT&3D^1DkZ!J1lVVVAs$We^e3&py>;7Jo&F~j;u1%5Zh9okL?pO7WnguT+I;;|i* zza`c}rs1@SH7E$`K6 z$+T2TK|YLb{^9q#j`*TvTg2A=fxQO&fp3nE7>f;Q@mO%()x8?^V6?oYA}m|fi>E#W z@2OI>o*@QrdF>wj-q3|u=RTE1ok!Qa+fb=AYWjOh?N_`#Q$d;N@6S`=c`Ut`2bCoK zzeZKrTk=oUg6Sn^@EvilsG9B>f8x@DtoW&9_?0rJ+k9@uoJvE0vt7J>hfFs8BH(Gy z;c4utHL}lia%vQ`aVjmXf|4vd>S={o%gQ7lm4kh(jU|50V3-)-LP{8HOd&CFR5#yz zA$q^kwodFg&Zs?4^GPydE#mMEI0%A_0+I_WMP?b-r0rW?lu7ZrrLX<+W4n$c&B_W3 zx>mtRzxXxr#0vqj!C}+ysYTXsVw(FI6V+)F@y!UwOG|<8MU4i&?zz-5%1-aR;YD%B z87;~&5Uc02WK%dGnIAX@Q9VjF*wImJUPe6B5iO1-+;%1mv`=X!f0qaZ_i`AhDw2RW zaol@OHG?*yL0ssyldD8U8F{O~YlL#t7c`fi`Cq^8m{PSHA4w^{jWm9|OD`~6ul8Dl z|L6pT<7&5Hc+;L~$>2P1?0$zk(rXJ6qCQii>A+8 z;AEydmpU5Tlt$#HS#q6d@aPP5nP_+6*OAz#^^uF0>pGSk&WxG?Z> zS+C)~5W3XLE;p3vC*z&Bj?)V=qE_L0_+aays2FT71I^6&p&ef`NyY%)+hEM4R)%o5ClRC&_Q zxuAG8%D?!f3K=vt{9b1(dP>SvAn1e;xKMS^#qP!P+y*2Os&&1tXSV4oz& zI&-(*aQq9LS*T{H1IRc0_C_9soIIHI-_xZ#cgkPmbT_l(5u0B zzOpEY3{L~^z<82h71A!GuloJ?;@;kBbG@_k>q>mwo~<*Rbj#BAU4K z4ssO5uNAis!W+U8TF8)0hMsw!*7+17>T4Yli( zXPV#6w?6pMI=|Qs*n3CVL7u>zO?fP+5jKLg= z&4Z|4wy3Yjm@l^Oaq~_{Ovxv&p6$;pk4YPn;_aPCG_jakVpcjlG@imAZcyB#0v3Aw zz50*8IdL%?Kjb_({CpV8Vx4gMot{>Vl^B*V#9Nh}BFCA+pKsrF(W(

NMJ6DKA@Y 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 Yx~0SZgpxv(%pb+vkxmpO58?S00AQPLwEzGB diff --git a/data/centered_ipd_twt.rda b/data/centered_ipd_twt.rda new file mode 100644 index 0000000000000000000000000000000000000000..0fda5215b8d4622aa3895830444e8b326adcd9b3 GIT binary patch literal 9548 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 QzKtuFUrV|tEi&xC0MrT+yZ`_I literal 0 HcmV?d00001 diff --git a/data/pseudo_ipd_twt.rda b/data/pseudo_ipd_twt.rda new file mode 100644 index 0000000000000000000000000000000000000000..b81564475d732e70a5a5c892944f1efc73353673 GIT binary patch literal 7006 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 literal 0 HcmV?d00001 From 444e00c9ab9dbdddd1caa4a422bb5da2b36f3cae Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 07:31:12 +0000 Subject: [PATCH 04/18] [skip style] [skip vbump] Restyle files --- data-raw/dummy_anchored.R | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/data-raw/dummy_anchored.R b/data-raw/dummy_anchored.R index 788fe6ae..f8e81ef6 100644 --- a/data-raw/dummy_anchored.R +++ b/data-raw/dummy_anchored.R @@ -6,8 +6,8 @@ set.seed(2024) # create adsl_twt adsl <- read.csv(system.file("extdata", "adsl.csv", - package = "maicplus", - mustWork = TRUE + package = "maicplus", + mustWork = TRUE )) adsl$USUBJID <- paste0("xx", adsl$USUBJID) adsl2 <- adsl @@ -18,8 +18,8 @@ adsl_twt <- rbind(adsl, adsl2) # create adtte_twt adtte <- read.csv(system.file("extdata", "adtte.csv", - package = "maicplus", - mustWork = TRUE + package = "maicplus", + mustWork = TRUE )) adtte$TIME <- adtte$AVAL adtte$EVENT <- adtte$EVNT @@ -40,8 +40,8 @@ adtte_twt <- rbind(adtte, adtte2) data("agd") # create pseudo_ipd_twt pseudo_ipd <- read.csv(system.file("extdata", "psuedo_IPD.csv", - package = "maicplus", - mustWork = TRUE + package = "maicplus", + mustWork = TRUE )) pseudo_ipd$ARM <- "B" pseudo_ipd2 <- adtte2[, c("TIME", "EVENT", "ARM")] @@ -60,16 +60,5 @@ centered_ipd_twt <- center_ipd(ipd = adsl_twt, agd = agd) ### Output usethis::use_data(adsl_twt, adtte_twt, pseudo_ipd_twt, centered_ipd_twt, adrs_sat, - internal = FALSE, overwrite = TRUE + internal = FALSE, overwrite = TRUE ) - - - - - - - - - - - From 8f91435941fd00c2d697eb9093a8ea68322227e0 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Thu, 30 May 2024 12:37:26 +0200 Subject: [PATCH 05/18] possible structure --- R/data.R | 89 +++++++++++++++++++++++++++++++++++++++ R/data_unanchored.R | 20 --------- data-raw/dummy_anchored.R | 2 +- inst/WORDLIST | 45 ++++++++++---------- man/adsl_sat.Rd | 23 ---------- man/anchored-data.Rd | 55 ++++++++++++++++++++++++ man/unanchored-data.Rd | 75 +++++++++++++++++++++++++++++++++ 7 files changed, 243 insertions(+), 66 deletions(-) create mode 100644 R/data.R delete mode 100644 R/data_unanchored.R delete mode 100644 man/adsl_sat.Rd create mode 100644 man/anchored-data.Rd create mode 100644 man/unanchored-data.Rd diff --git a/R/data.R b/R/data.R new file mode 100644 index 00000000..19fee775 --- /dev/null +++ b/R/data.R @@ -0,0 +1,89 @@ +#' Dummy Single-arm Trial Data for Unanchored MAIC +#' +#' These datasets contains adsl_sat, adtte_sat, adrs_sat, +#' agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) +#' @format **adsl_sat**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' +#' @format **adtte_sat**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' +#' @format **pseudo_ipd_sat**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' @format **agd**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' @format **centered_ipd_sat**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' @format **adrs_sat**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' @source These datasets are generated by the dummy_unanchored.R script. +#' @name unanchored-data +#' @keywords dataset +"adsl_sat" + +#' @rdname unanchored-data +"adtte_sat" + +#' @rdname unanchored-data +"pseudo_ipd_sat" + +#' @rdname unanchored-data +"agd" + +#' @rdname unanchored-data +"centered_ipd_sat" + +#' @rdname unanchored-data +"adrs_sat" + + + +#' Dummy Trial Data for anchored MAIC +#' +#' These datasets contains adsl_twt, adtte_twt, +#' centered_ipd_twt, pseudo_ipd_twt (AgD, tte data) +#' +#' @format **adsl_twt**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' +#' @format **adtte_twt**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' +#' @format **pseudo_ipd_twt**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' @format **centered_ipd_twt**: a data frame with xx rows and x columns: +#' \describe{ +#' \item{id}{The ID of the patients.} +#' } +#' +#' @source These datasets are generated by the dummy_anchored.R script. +#' @name anchored-data +#' @keywords dataset +"adsl_twt" + +#' @rdname anchored-data +"adtte_twt" + +#' @rdname anchored-data +"pseudo_ipd_twt" + +#' @rdname anchored-data +"centered_ipd_twt" diff --git a/R/data_unanchored.R b/R/data_unanchored.R deleted file mode 100644 index 2df16fa4..00000000 --- a/R/data_unanchored.R +++ /dev/null @@ -1,20 +0,0 @@ -#' Dummy Single-arm Trial Data for Unanchored MAIC -#' -#' These datasets contains adsl_sat, adtte_sat, adrs_sat, -#' agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) -#' -#' @format A data frame with xx rows and x columns: -#' \describe{ -#' \item{id}{The ID of the patients.} -#' } -#' -#' @source These datasets are generated by the dummy_unanchored.R script. -#' -#' @keywords dataset -#' -"adsl_sat" -"adtte_sat" -"pseudo_ipd_sat" -"agd_sat" -"centered_ipd_sat" -"adrs_sat" diff --git a/data-raw/dummy_anchored.R b/data-raw/dummy_anchored.R index f8e81ef6..56a142ee 100644 --- a/data-raw/dummy_anchored.R +++ b/data-raw/dummy_anchored.R @@ -59,6 +59,6 @@ centered_ipd_twt <- center_ipd(ipd = adsl_twt, agd = agd) ### Output -usethis::use_data(adsl_twt, adtte_twt, pseudo_ipd_twt, centered_ipd_twt, adrs_sat, +usethis::use_data(adsl_twt, adtte_twt, pseudo_ipd_twt, centered_ipd_twt, internal = FALSE, overwrite = TRUE ) diff --git a/inst/WORDLIST b/inst/WORDLIST index c919a6e2..22b7eafb 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,55 +1,56 @@ -ADTTE ADaM -AgD -Azocar -Bucher -Comparator -DSU -ECOG -ESS -IPD -Kaplan -MAIC -Phillippo -Pre -Remiro -Schoenfeld -Signorovitch -TSD -TTE -Texp -USUBJID -Unanchored -Univariable adrs adsl +ADTTE adtte +AgD agd agg al +Azocar binarize +Bucher +Comparator comparator confounders csv +DSU dummize dummized +ECOG +ESS et frac ggplot glm hta initializer +IPD ipd +Kaplan +MAIC multivariable pharma +Phillippo phillippo +Pre pre preprocessed +Remiro reproducibility +Schoenfeld sd +Signorovitch signorovitch +Texp +TSD +TTE tte +twt +Unanchored unanchored +Univariable unscaled unstacked +USUBJID vcovHC diff --git a/man/adsl_sat.Rd b/man/adsl_sat.Rd deleted file mode 100644 index 4d0fc24f..00000000 --- a/man/adsl_sat.Rd +++ /dev/null @@ -1,23 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/data_unanchored.R -\docType{data} -\name{adsl_sat} -\alias{adsl_sat} -\title{Dummy Single-arm Trial Data for Unanchored MAIC} -\format{ -A data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} -} -\source{ -These datasets are generated by the dummy_unanchored.R script. -} -\usage{ -adsl_sat -} -\description{ -These datasets contains adsl_sat, adtte_sat, adrs_sat, -agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) -} -\keyword{dataset} diff --git a/man/anchored-data.Rd b/man/anchored-data.Rd new file mode 100644 index 00000000..155d0634 --- /dev/null +++ b/man/anchored-data.Rd @@ -0,0 +1,55 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{anchored-data} +\alias{anchored-data} +\alias{adsl_twt} +\alias{adtte_twt} +\alias{pseudo_ipd_twt} +\alias{centered_ipd_twt} +\title{Dummy Trial Data for anchored MAIC} +\format{ +\strong{adsl_twt}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +\strong{adtte_twt}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +\strong{pseudo_ipd_twt}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +\strong{centered_ipd_twt}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +An object of class \code{data.frame} with 1000 rows and 10 columns. + +An object of class \code{data.frame} with 800 rows and 3 columns. + +An object of class \code{data.frame} with 1000 rows and 15 columns. +} +\source{ +These datasets are generated by the dummy_anchored.R script. +} +\usage{ +adsl_twt + +adtte_twt + +pseudo_ipd_twt + +centered_ipd_twt +} +\description{ +These datasets contains adsl_twt, adtte_twt, +centered_ipd_twt, pseudo_ipd_twt (AgD, tte data) +} +\keyword{dataset} +\keyword{datasets} diff --git a/man/unanchored-data.Rd b/man/unanchored-data.Rd new file mode 100644 index 00000000..64164c41 --- /dev/null +++ b/man/unanchored-data.Rd @@ -0,0 +1,75 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{unanchored-data} +\alias{unanchored-data} +\alias{adsl_sat} +\alias{adtte_sat} +\alias{pseudo_ipd_sat} +\alias{agd} +\alias{centered_ipd_sat} +\alias{adrs_sat} +\title{Dummy Single-arm Trial Data for Unanchored MAIC} +\format{ +\strong{adsl_sat}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +\strong{adtte_sat}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +\strong{pseudo_ipd_sat}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +\strong{agd}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +\strong{centered_ipd_sat}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +\strong{adrs_sat}: a data frame with xx rows and x columns: +\describe{ +\item{id}{The ID of the patients.} +} + +An object of class \code{data.frame} with 500 rows and 10 columns. + +An object of class \code{data.frame} with 300 rows and 3 columns. + +An object of class \code{data.frame} with 3 rows and 9 columns. + +An object of class \code{data.frame} with 500 rows and 15 columns. + +An object of class \code{data.frame} with 500 rows and 5 columns. +} +\source{ +These datasets are generated by the dummy_unanchored.R script. +} +\usage{ +adsl_sat + +adtte_sat + +pseudo_ipd_sat + +agd + +centered_ipd_sat + +adrs_sat +} +\description{ +These datasets contains adsl_sat, adtte_sat, adrs_sat, +agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) +} +\keyword{dataset} +\keyword{datasets} From 45b82c2cbaf8143eded4dd9672ddba01b5e493ce Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Fri, 31 May 2024 13:03:02 +0200 Subject: [PATCH 06/18] start docs --- R/data.R | 43 ++++++++++++++++++++++++--------------- data-raw/dummy_anchored.R | 1 + man/anchored-data.Rd | 18 ++++++++-------- man/unanchored-data.Rd | 2 +- 4 files changed, 39 insertions(+), 25 deletions(-) diff --git a/R/data.R b/R/data.R index 19fee775..b08648a3 100644 --- a/R/data.R +++ b/R/data.R @@ -1,7 +1,7 @@ #' Dummy Single-arm Trial Data for Unanchored MAIC #' #' These datasets contains adsl_sat, adtte_sat, adrs_sat, -#' agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) +#' agd (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) #' @format **adsl_sat**: a data frame with xx rows and x columns: #' \describe{ #' \item{id}{The ID of the patients.} @@ -28,6 +28,7 @@ #' \describe{ #' \item{id}{The ID of the patients.} #' } +#' #' @source These datasets are generated by the dummy_unanchored.R script. #' @name unanchored-data #' @keywords dataset @@ -55,35 +56,45 @@ #' These datasets contains adsl_twt, adtte_twt, #' centered_ipd_twt, pseudo_ipd_twt (AgD, tte data) #' -#' @format **adsl_twt**: a data frame with xx rows and x columns: +#' @source These datasets are generated by the dummy_anchored.R script. +#' @name anchored-data +#' @keywords dataset +NULL + +#' @rdname anchored-data +#' @format **adsl_twt**: a data frame with 1000 rows and 9 columns: #' \describe{ -#' \item{id}{The ID of the patients.} +#' \item{X}{The ID of the patients.} +#' \item{USUBJID}{Unique subject identifiers for patients.} +#' \item{ARM}{Assigned treatment arm.} +#' \item{AGE}{Age in years at baseline.} +#' \item{SEX}{Sex of patient recorded as character "Male"/"Female"} +#' \item{SMOKE}{Smoking status at baseline as integer 0/1} +#' \item{ECOG0}{ECOG score at baseline as integer 0/1} +#' \item{N_PR_THER}{Number of prior therapies received as integer 1, 2, 3, 4} +#' \item{SEX_MALE}{Indicator of SEX == "Male" as numeric 1/0} #' } #' +"adsl_twt" + +#' @rdname anchored-data #' @format **adtte_twt**: a data frame with xx rows and x columns: #' \describe{ #' \item{id}{The ID of the patients.} #' } #' +"adtte_twt" + +#' @rdname anchored-data #' @format **pseudo_ipd_twt**: a data frame with xx rows and x columns: #' \describe{ #' \item{id}{The ID of the patients.} #' } +"pseudo_ipd_twt" + +#' @rdname anchored-data #' @format **centered_ipd_twt**: a data frame with xx rows and x columns: #' \describe{ #' \item{id}{The ID of the patients.} #' } -#' -#' @source These datasets are generated by the dummy_anchored.R script. -#' @name anchored-data -#' @keywords dataset -"adsl_twt" - -#' @rdname anchored-data -"adtte_twt" - -#' @rdname anchored-data -"pseudo_ipd_twt" - -#' @rdname anchored-data "centered_ipd_twt" diff --git a/data-raw/dummy_anchored.R b/data-raw/dummy_anchored.R index 56a142ee..4bde16fc 100644 --- a/data-raw/dummy_anchored.R +++ b/data-raw/dummy_anchored.R @@ -11,6 +11,7 @@ adsl <- read.csv(system.file("extdata", "adsl.csv", )) adsl$USUBJID <- paste0("xx", adsl$USUBJID) adsl2 <- adsl +adtte2$ARM <- "C" adsl2$USUBJID <- sample(size = nrow(adsl2), paste0("yy", adsl2$USUBJID), replace = FALSE) adsl2 <- adsl2[order(adsl2$USUBJID), ] diff --git a/man/anchored-data.Rd b/man/anchored-data.Rd index 155d0634..5f4bdd44 100644 --- a/man/anchored-data.Rd +++ b/man/anchored-data.Rd @@ -9,9 +9,17 @@ \alias{centered_ipd_twt} \title{Dummy Trial Data for anchored MAIC} \format{ -\strong{adsl_twt}: a data frame with xx rows and x columns: +\strong{adsl_twt}: a data frame with 1000 rows and 9 columns: \describe{ -\item{id}{The ID of the patients.} +\item{X}{The ID of the patients.} +\item{USUBJID}{Unique subject identifiers for patients.} +\item{ARM}{Assigned treatment arm.} +\item{AGE}{Age in years at baseline.} +\item{SEX}{Sex of patient recorded as character "Male"/"Female"} +\item{SMOKE}{Smoking status at baseline as integer 0/1} +\item{ECOG0}{ECOG score at baseline as integer 0/1} +\item{N_PR_THER}{Number of prior therapies received as integer 1, 2, 3, 4} +\item{SEX_MALE}{Indicator of SEX == "Male" as numeric 1/0} } \strong{adtte_twt}: a data frame with xx rows and x columns: @@ -28,12 +36,6 @@ \describe{ \item{id}{The ID of the patients.} } - -An object of class \code{data.frame} with 1000 rows and 10 columns. - -An object of class \code{data.frame} with 800 rows and 3 columns. - -An object of class \code{data.frame} with 1000 rows and 15 columns. } \source{ These datasets are generated by the dummy_anchored.R script. diff --git a/man/unanchored-data.Rd b/man/unanchored-data.Rd index 64164c41..31ca6385 100644 --- a/man/unanchored-data.Rd +++ b/man/unanchored-data.Rd @@ -69,7 +69,7 @@ adrs_sat } \description{ These datasets contains adsl_sat, adtte_sat, adrs_sat, -agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) +agd (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) } \keyword{dataset} \keyword{datasets} From a01368684cf52518550ccb7fca8bb58fe772eba8 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Tue, 18 Jun 2024 11:00:47 +0200 Subject: [PATCH 07/18] update docs --- DESCRIPTION | 2 +- R/data.R | 206 ++++++++++++++++++++++++++---------- data-raw/dummy_anchored.R | 4 +- data-raw/dummy_unanchored.R | 5 +- data/adrs_sat.rda | Bin 1061 -> 1079 bytes data/adsl_sat.rda | Bin 2345 -> 2064 bytes data/adsl_twt.rda | Bin 6892 -> 5052 bytes data/adtte_sat.rda | Bin 6561 -> 6559 bytes data/adtte_twt.rda | Bin 11528 -> 11558 bytes data/agd.rda | Bin 310 -> 273 bytes data/centered_ipd_sat.rda | Bin 3945 -> 3742 bytes data/centered_ipd_twt.rda | Bin 9548 -> 7889 bytes data/pseudo_ipd_sat.rda | Bin 3041 -> 3040 bytes data/pseudo_ipd_twt.rda | Bin 7006 -> 7013 bytes man/adrs_sat.Rd | 32 ++++++ man/adsl_sat.Rd | 36 +++++++ man/adsl_twt.Rd | 35 ++++++ man/adtte_sat.Rd | 37 +++++++ man/adtte_twt.Rd | 36 +++++++ man/agd.Rd | 43 ++++++++ man/anchored-data.Rd | 57 ---------- man/centered_ipd_sat.Rd | 42 ++++++++ man/centered_ipd_twt.Rd | 41 +++++++ man/pseudo_ipd_sat.Rd | 30 ++++++ man/pseudo_ipd_twt.Rd | 29 +++++ man/unanchored-data.Rd | 75 ------------- 26 files changed, 517 insertions(+), 193 deletions(-) create mode 100644 man/adrs_sat.Rd create mode 100644 man/adsl_sat.Rd create mode 100644 man/adsl_twt.Rd create mode 100644 man/adtte_sat.Rd create mode 100644 man/adtte_twt.Rd create mode 100644 man/agd.Rd delete mode 100644 man/anchored-data.Rd create mode 100644 man/centered_ipd_sat.Rd create mode 100644 man/centered_ipd_twt.Rd create mode 100644 man/pseudo_ipd_sat.Rd create mode 100644 man/pseudo_ipd_twt.Rd delete mode 100644 man/unanchored-data.Rd diff --git a/DESCRIPTION b/DESCRIPTION index d5787793..f04bc9d1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -41,4 +41,4 @@ Encoding: UTF-8 Language: en-US LazyData: true Roxygen: list(markdown = TRUE) -RoxygenNote: 7.3.1 +RoxygenNote: 7.3.1.9000 diff --git a/R/data.R b/R/data.R index b08648a3..a4d95c33 100644 --- a/R/data.R +++ b/R/data.R @@ -1,70 +1,118 @@ -#' Dummy Single-arm Trial Data for Unanchored MAIC -#' -#' These datasets contains adsl_sat, adtte_sat, adrs_sat, -#' agd (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) -#' @format **adsl_sat**: a data frame with xx rows and x columns: -#' \describe{ -#' \item{id}{The ID of the patients.} -#' } -#' -#' @format **adtte_sat**: a data frame with xx rows and x columns: -#' \describe{ -#' \item{id}{The ID of the patients.} -#' } -#' -#' @format **pseudo_ipd_sat**: a data frame with xx rows and x columns: -#' \describe{ -#' \item{id}{The ID of the patients.} -#' } -#' @format **agd**: a data frame with xx rows and x columns: -#' \describe{ -#' \item{id}{The ID of the patients.} -#' } -#' @format **centered_ipd_sat**: a data frame with xx rows and x columns: -#' \describe{ -#' \item{id}{The ID of the patients.} -#' } -#' @format **adrs_sat**: a data frame with xx rows and x columns: +# unanchored datasets ------ + +#' Patient data from single arm study +#' @format a data frame with 500 rows and 8 columns: #' \describe{ -#' \item{id}{The ID of the patients.} +#' \item{USUBJID}{} +#' \item{ARM}{} +#' \item{AGE}{} +#' \item{SEX}{} +#' \item{SMOKE}{} +#' \item{ECOG0}{} +#' \item{N_PR_THER}{} +#' \item{SEX_MALE}{} #' } -#' -#' @source These datasets are generated by the dummy_unanchored.R script. -#' @name unanchored-data #' @keywords dataset +#' @family unanchored datasets "adsl_sat" -#' @rdname unanchored-data +#' Survival data from single arm trial +#' @format A data frame with 500 rows and 10 columns: +#' \describe{ +#' \item{USUBJID}{} +#' \item{ARM}{} +#' \item{EVNT}{} +#' \item{AVAL}{} +#' \item{AVALU}{} +#' \item{PARAMCD}{} +#' \item{PARAM}{} +#' \item{CNSR}{} +#' \item{TIME}{} +#' \item{EVENT}{} +#' } +#' @family unanchored datasets +#' @keywords dataset "adtte_sat" -#' @rdname unanchored-data + +#' Pseudo individual patient survival data from published study +#' @format A data frame with 300 rows and 3 columns: +#' \describe{ +#' \item{Time}{} +#' \item{Event}{} +#' \item{ARM}{} +#' } +#' @family unanchored datasets +#' @keywords dataset "pseudo_ipd_sat" -#' @rdname unanchored-data -"agd" -#' @rdname unanchored-data +#' Centered patient data from single arm trial +#' @format A data frame with 500 rows and 14 columns: +#' \describe{ +#' \item{USUBJID}{} +#' \item{ARM}{} +#' \item{AGE}{} +#' \item{SEX}{} +#' \item{SMOKE}{} +#' \item{ECOG0}{} +#' \item{N_PR_THER}{} +#' \item{SEX_MALE}{} +#' \item{AGE_CENTERED}{} +#' \item{AGE_MEDIAN_CENTERED}{} +#' \item{AGE_SQUARED_CENTERED}{} +#' \item{SEX_MALE_CENTERED}{} +#' \item{ECOG0_CENTERED}{} +#' \item{SMOKE_CENTERED}{} +#' } +#' @family unanchored datasets +#' @keywords dataset "centered_ipd_sat" -#' @rdname unanchored-data +#' Binary outcome data from single arm trial +#' @format A data frame with 500 rows and 5 columns: +#' \describe{ +#' \item{USUBJID}{} +#' \item{ARM}{} +#' \item{AVAL}{} +#' \item{PARAM}{} +#' \item{RESPONSE}{} +#' } +#' @family unanchored datasets +#' @keywords dataset "adrs_sat" -#' Dummy Trial Data for anchored MAIC +# aggregate data ------ + +#' Aggregate effect modifier data from published study #' -#' These datasets contains adsl_twt, adtte_twt, -#' centered_ipd_twt, pseudo_ipd_twt (AgD, tte data) +#' This data is formatted to be used in [center_ipd()]. #' -#' @source These datasets are generated by the dummy_anchored.R script. -#' @name anchored-data +#' @format A data frame with 3 rows and 9 columns: +#' \describe{ +#' \item{STUDY}{} +#' \item{ARM}{} +#' \item{N}{} +#' \item{AGE_MEAN}{} +#' \item{AGE_MEDIAN}{} +#' \item{AGE_SD}{} +#' \item{SEX_MALE_COUNT}{} +#' \item{ECOG0_COUNT}{} +#' \item{SMOKE_COUNT}{} +#' } +#' @family unanchored datasets +#' @family anchored datasets #' @keywords dataset -NULL +"agd" + + +# anchored datasets ------- -#' @rdname anchored-data -#' @format **adsl_twt**: a data frame with 1000 rows and 9 columns: +#' Patient data from two arm trial +#' @format A data frame with 1000 rows and 8 columns: #' \describe{ -#' \item{X}{The ID of the patients.} #' \item{USUBJID}{Unique subject identifiers for patients.} #' \item{ARM}{Assigned treatment arm.} #' \item{AGE}{Age in years at baseline.} @@ -74,27 +122,71 @@ NULL #' \item{N_PR_THER}{Number of prior therapies received as integer 1, 2, 3, 4} #' \item{SEX_MALE}{Indicator of SEX == "Male" as numeric 1/0} #' } -#' +#' @family anchored datasets +#' @keywords dataset "adsl_twt" -#' @rdname anchored-data -#' @format **adtte_twt**: a data frame with xx rows and x columns: + +#' Survival data from two arm trial +#' @format A data frame with 1000 rows and 10 columns: #' \describe{ -#' \item{id}{The ID of the patients.} +#' \item{USUBJID}{} +#' \item{ARM}{} +#' \item{EVNT}{} +#' \item{AVAL}{} +#' \item{AVALU}{} +#' \item{PARAMCD}{} +#' \item{PARAM}{} +#' \item{CNSR}{} +#' \item{TIME}{} +#' \item{EVENT}{} #' } -#' +#' @family anchored datasets +#' @keywords dataset "adtte_twt" -#' @rdname anchored-data -#' @format **pseudo_ipd_twt**: a data frame with xx rows and x columns: + +#' Pseudo individual patient survival data from published two arm study +#' @format A data frame with 800 rows and 3 columns: #' \describe{ -#' \item{id}{The ID of the patients.} +#' \item{Time}{} +#' \item{Event}{} +#' \item{ARM}{} #' } +#' @family anchored datasets +#' @keywords dataset "pseudo_ipd_twt" -#' @rdname anchored-data -#' @format **centered_ipd_twt**: a data frame with xx rows and x columns: + +#' Centered patient data from two arm trial +#' @format A data frame with 1000 rows and 14 columns: #' \describe{ -#' \item{id}{The ID of the patients.} +#' \item{USUBJID}{} +#' \item{ARM}{} +#' \item{AGE}{} +#' \item{SEX}{} +#' \item{SMOKE}{} +#' \item{ECOG0}{} +#' \item{N_PR_THER}{} +#' \item{SEX_MALE}{} +#' \item{AGE_CENTERED}{} +#' \item{AGE_MEDIAN_CENTERED}{} +#' \item{AGE_SQUARED_CENTERED}{} +#' \item{SEX_MALE_CENTERED}{} +#' \item{ECOG0_CENTERED}{} +#' \item{SMOKE_CENTERED}{} #' } +#' @keywords dataset +#' @family anchored datasets "centered_ipd_twt" + + +if (FALSE) { + make_roxygen_data <- function(df) { + cn <- colnames(df) + cat("#' @format A data frame with", nrow(df), "rows and", ncol(df), "columns:\n") + cat("#' \\describe{\n") + for (i in cn) cat("#' \\item{", i, "}{}\n", sep = "") + cat("#' }") + } +} diff --git a/data-raw/dummy_anchored.R b/data-raw/dummy_anchored.R index 4bde16fc..d75c3a2d 100644 --- a/data-raw/dummy_anchored.R +++ b/data-raw/dummy_anchored.R @@ -9,6 +9,7 @@ adsl <- read.csv(system.file("extdata", "adsl.csv", package = "maicplus", mustWork = TRUE )) +adsl$X <- NULL adsl$USUBJID <- paste0("xx", adsl$USUBJID) adsl2 <- adsl adtte2$ARM <- "C" @@ -37,8 +38,9 @@ adtte2$USUBJID <- paste0("yy", adtte2$USUBJID) adtte_twt <- rbind(adtte, adtte2) - +# Make sure that agd is up-to-date! data("agd") + # create pseudo_ipd_twt pseudo_ipd <- read.csv(system.file("extdata", "psuedo_IPD.csv", package = "maicplus", diff --git a/data-raw/dummy_unanchored.R b/data-raw/dummy_unanchored.R index 179c3c63..0d3bd747 100644 --- a/data-raw/dummy_unanchored.R +++ b/data-raw/dummy_unanchored.R @@ -1,5 +1,5 @@ #### create datasets for unanchored case #### -## adsl_sat, adtte_sat, adrs_sat, agd_sat (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) +## adsl_sat, adtte_sat, adrs_sat, agd (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) devtools::load_all() # Read in relevant ADaM data and rename variables of interest @@ -7,6 +7,7 @@ adsl_sat <- read.csv(system.file("extdata", "adsl.csv", package = "maicplus", mustWork = TRUE )) +adsl_sat$X <- NULL adtte_sat <- read.csv(system.file("extdata", "adtte.csv", package = "maicplus", mustWork = TRUE @@ -29,7 +30,7 @@ pseudo_ipd_sat <- read.csv(system.file("extdata", "psuedo_IPD.csv", pseudo_ipd_sat$ARM <- "B" ### Centered IPD -agd_sat <- process_agd(agd_sat) +agd <- process_agd(agd) adsl_sat <- dummize_ipd(adsl_sat, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) centered_ipd_sat <- center_ipd(ipd = adsl_sat, agd = agd_sat) diff --git a/data/adrs_sat.rda b/data/adrs_sat.rda index 7fa37b66618c6f79e0262879d4c8e3043a29a4f9..7a7b5e1b44a5f411925ce72ac99ddb1ffc36e8d7 100644 GIT binary patch delta 899 zcmZ3=v7Lj@DJsL#&@oaiII?1qYx+dKwe_sF|9`Ct@tMH@0&1KMz6KzM8-p4H17`z> z2?8t`7h4Vh1xz*7RBe`B`7+bgkd1-Chrw+I1IwYz2B1tQkWdq5n3ZziqOGZ|t>XfQ znFekgmz9MXm@j4c*t)39bmU}m^k!yT-z4O5|3O>~2V-SPe&O``ZQiecw@f;-RYhg8 z$m!pXjRzjQs$Tky&*(*r;f_0be2IOknx8~Pr-@A$pCK_*a+cKWO5byQHOJl4=M`Um z{DnnC#l$5fVZ}>MP0!5El_y^@hJ;MHDjGWVnpoJhzuevXrat|~CLb&;t*ntBzj5Z= zg-chivEO2xzH{r&y$6q;JbSVJ>diaWhfiO={rL6gKP)^VGAcSIHZDFPF)2AEH7z|; z<}6viFDfp<<;;~kPu_g_%gTSKt8en-PfM5mynH3(YUs7F>)|&dZbsgUx*dHd=5Fl0 zxcl)B5*{W#N_w39B;{%9v$W^wFEU&tJTJ^_ueLEdox!pk!oXki9S=!Qo3kkOKmYE>4ckOe_)x2@OCV>lz?& z5X6E5HZ>4X-)d+(S%rnU*T0x=lTHH*GjAiq+b5hVM-Kg~Q@oBs*Ac* zTvS}RSr$0Buy_ipXe?@KY2{GpXc1KC2$-ViFh#|M#Zjn5l@q9~qoJdt)5%L?QNRQj z6+sq{i3%MZNsmQ@tneOq~%HnY8N3 ztKGkro_V!iXVbY?tNyJv+PmrK_U=17Z3_U2@NQE8 delta 881 zcmdnav6O?)DJsL#&@oaiIP&LBcgKl*YwKAw|NmdL)G2}G00S5ZLnsE$1_lNu3BhGO zK)%lm1_r@p3=Ev6nrfalldqh(09AxU@$xb|K)B3V47M&R(;o@3G)-d@TF)fpaqoU? z3VC3*k2@0V8AHnv|ma_qz@>FaOO(lau%viaZg+CGY?F z%PXsE>l$kLZboK1rxBoEhsMvAjQ_<(*FC||~JL=!OWf52a3^<1d_7W8d0bAt< zkWgd@6qt~3pplJ7LIEhim<=Qh5`Y98FgAk07a#sP@AyxuFgy}|eKb7pkOPP8l}42r z67wz#7W~zDp~9)MJu9~Lx5@-&c7{nFYbG(ocer>YwWx9matX0ADb*`6skmr(YB(uz zG$?U23aLL(u~#~DF;SIMS0qqLQAr^}m5E6~$)i)zRYXKZ!;!^Bp_9d_Wg!>KLL~(y zjwy;79!eZ7E-WrCUP6JcLM=^-3LQ!=oh&YnLP{L198nsJgbp$aaWqV9h)Lm8(QWpK zSv85lERa)W(hRKzZYH664?WrSPF)HAt^{#y(g}Ma0P!E=uhfSD3lujv0J%;A6DCaZ zaWCxLy=Qy=_EmAeo=!{3*>p7Y{i;1yOHXL6TeIohw^iR(%O8wPx_#*WC4ouaVY~lK z`gL{b?&CR|-mNT*)SafaYSmX!?}F!7L(XVx_tMV0B-A}a(Yc`bdr{{3d|+}-7d7AKrM^_qk{yKirI l4O%e;=-TOy6BkN}0G(+NIN|Ta`j6!*!L6M9bElLD006^&P2m6l diff --git a/data/adsl_sat.rda b/data/adsl_sat.rda index 82280382ab355729b3f0564fda7e21508f7c157a..a770c8b04b21d003ddc249ab2c079d7359e75e4f 100644 GIT binary patch literal 2064 zcmah}Ygm#A7XCi?RB*kZLMf#IqKl}AK6tAvR6t~~MFMYGl3}5nrl!@jHLD2<1q~3H z*=5MYypET|Nh@z@X^xFUYNlPx87tRp%1bjgGc~rq_L*n*+4uZ8m-ju-`Ekw(OOOQn zhQ_;Zjh|A=-T_wBp9%sH%`yYUZ>H*;XlAt=B4$uI}efkO)Yp$XV0bm6SwR1%! z!CKKjjbeV*oTao=OB|zC0w~gB>-Z_!utWm<*XD5C3JI{~0hvj8q&VKbNvrZOO&l(i zjfZ)lPT=erC?6lnxIdrcoo1{qzhq~J4tM3-Ko0ob{;_c=@sIe`Odd^IY2O)!-l!NOoqS_XBMG0}Sq(yx$8W<)@m*(-?GH3@Or zZ)YCxjhkXi+w};Krw*#JxLm2JRS!XMOcige3ji#_5Wty-k~{>ZgC<7-<{;?nH-ENp z!D2xMp{!v5Sk>6tDWV52I-3FTt6c>nM87vLcjy{j%11EK$e;^Q>DQj|BgPx_qB^0R z5BHDk-Rk0n5Xj1oaPQAHJ)=KwqjO4hsS^S@gIjNjVKYGx4{)Z{F%*^!G4>Fpaev~k zTM*3cO$^bO$mtr`RBe-upHY@GqdoL;SHE~Tg#P(ybR$PSb{BT1;r=N8Z#eSVt>Tr{=AnbUPio80C`1>>Scg(?OpD)DR#>`A&L^(IV#X7oso)~Bft$qk z9J3a~%wgybb|%z|I>csTM%fYJe-X_7H7cV$>t3rtL$p?Ha9Pqm!nEvJOEbLalsrCQ zUfS)OR~-*K8xzy=FVJ_YDu5J$tl-(_a4;9cg~$s|_1T#ob4VR_*a&kNDwXkBe(0Zs zg~TdrZ(LQVPx(IllrY!H&@PsFg;*^+Ux_VvA=Y&Qp9>A3vE>>G{G8x)n7scsm0Yv&uC zrD^~B_Uy*6?a_a0H6uf6f@qgTIMJ9~#jZBIX{x=?p>@bTOS8@uFR zt}UBoFYI5;S<1cpt-)y6$ zT^+-Gl_`hko3uUGK9T+m@V7AJx*J3zRq2Z8-tKR0%8 zbw*7#;ITbqS;VyMsBa-Sy1ygI*Od@zh$s&KtI}IvY!=rstbwA!<_z~yH05B}@zFM6 zby0s-L~cggXx4+rDW%P8Q=0-aS$<9adlH0-^=E=HiHd98sDD~5Vo!(dGovCglTqsx z5l1j-8)Q$6+b}6k7K=N)PQ2rMBWlPt-lPf(Tx&GC8n^B9%W1|KvgT=ROm1udEEl4^ zraITgH4E!JE%J6CcheH`EkKj|`oJUD_TIeLC98{~FR3aluR8R4>8siLBnafR(krL5 zL(vo_rjk_sD-VTL5C~Fvxtv^ExJtkXkqGEwq7#y+)}JO0t|IHrII!w4Is(!O0G%1V zidVfS<-3Qlq4*#928P?XptAP37ROfLh;pqZ8%dBJ?^EV|^|)Z!wksI#?ECX3OH+U@ z3f}!#NS4nCw~nR?O?S(ji`){La_cS-)?9`ar&@Q(4As+uMX#^hMxjx+gxfpXo?l2m zI&g0=w)0F(B=(Hbfl048}ZJbtB<~kQ$oV-od$LD+hqU3a_oZNKXBV@Wj#sD zW7#jwCf+bDq1r3drj{PQ{|l4bu0?$8=@omj$-*6U`)u2S#mo=T4eMu{6W1C3zAL`M zVU4jNR6gAl@WlD#^WL;^z~Aa+T&uhVmE!U%#WuqTiSG7_7wW)tky(P%av$<{GA zQX<5*1krj1nL)2S#^BI}Xf**Hc8N!}XOb9lJzXb5NsmkI2?Bl?LFcye_ZfT!j%SBp zkQkTj=~6u*67Tf%5DVThpBdytHO6u8%?*@zlF08x$I*$cZ-tRWZDjtfNf48fIFyg} z8h=pYnee{aHiwq K(jv6jC+`pNr8&p| literal 2345 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 XrJ1;rRoAt+D#a{S8`p}pYQVn$$52i> literal 6892 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 diff --git a/data/adtte_twt.rda b/data/adtte_twt.rda index f308353a9b0c6cbf8af1e894c8b772fe9171775d..733cb4e54bcbf6eb11bd3e0f7795242924f9ff0f 100644 GIT binary patch literal 11558 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 UjD=eFLq|MqUtnOWRoKt}1-h@Ak^lez literal 11528 zcmbWc1y~(Tvo5-jV8PvGVS(T*+#Q0u`@#vX!QGwU!6iU&*AU#@o#47~my`Va?0@fb z&-dJO?ya7us=KG_eW$B?o~fA;)v@GZ715?q)&6M|MhWmEc>6!fCZiD4CIAWmfSPos zvwWwN01>=J4GawoK|vGC1Ho5ig)3o)Yv<+ylwgDbDA3ISfbf8H1ZD_%nT+bGKQ#qM z5q3U$z58ofL~dAdv0MfUT(l$>7Gklgb+)Bdfn;=$B+yi(0CtEaQ;bp`3qJ!iBM&1N zabScIh@4JnRh*Uq#;3^ufvxhtz)%#YD?wh=RVC#_b8@@r>SrX=DQUpHprNG67{w{j zPypx`sGCK#cXD=#0AG$K9b{D?k6coCL8v-PEreh>?5QY66Y(3QI)*}seOo+Lj1iAS z@R*-nTKqOAfgd-=nVn2l+CUC73p0xXKvMz$K$C<7P{pBQ!d7{?Fp@C>!cYaXmLLEj z06+*Dg#QkhgqZ~tDZRa@(}%sim3=QsESM6I2i+DY&HnZNBa;9)|9@5ft^RoZiR4$I zx7p;fznyF#&?JmJ05B8|0uzG%0{`u`iYEjNPQ&BB75D+7y+0Kg1T$!(lhW&{8$ibW$~ z{Uvnuf}!G5R1(YlyO2bID4q3vh+RNuC2|pR42@4wsn344y&`aP2+#%N!YQ9y84@M8 z<&r;?eK4sbZfFY_{@jMBMNc2Q7NewItE3)Dk5o4x`5r#Fd#m~x7r54|J@; zKrvW!VPPChDrx^fasLD$0+kYZI!nA#)=+SvnuszR5)2SLNCQSpd~YnA01E|+gNev7 zh#0R)o(GVQ*Py4ThYrT3!bBi9mrE33DcsSakzhfmiAV0L=L;@LG&H>?r2>g8Y0lp6+M^zhq?gpkCruZ;{(irF*<6 z7O#?7=qz9>ai>gfZNSvo#~5K~IytP&4UnW(B>#3AM|}$zYO>ZsfSI@>MZS06FJfNUzY$@h;4ML0>oKZ z#LpjanaXC|jHs7a@0z(#y z1dwffEElaxAsXDk94e(e#On@^eTAU%Q<|VoxL}0-=kKBB9wS4U69d2U2KdE`sVU@{+pdtV#mp48E#erM)s^DY;S>4_sjvS;?6}So#_SK#EGr$97;s4 zW|4mqE3d^W-Gr-zuE)ptViunSHmTrCZqEBz>F*vkPy{%~-qd5HIcB@Wioz#n8f~~H zUxbk2d%+9Hnz3;V4D7jGV~g0)aM+z+C5i1gs8BVQD5|E77AO0ynShGWun4dKqL!NG z>h&(e@w5VTa3|3CR`kXJ$Z&*#Z_>7G7Gdf8z+(3~d`GDN@km#b(dpclpZmG%sqm}C-@;al);7NVZ23Y05#Mgx8{h~^so3+5)vTo; zckIIqoT{b5qQu1@1bx6$ROT0?ER3n=Dmwk8ku4?Q-Tuxa<2V`vSu%JWdp|R(NJked z=epRTFGg}sxM^-K9f+^q$=X9|rOZ{f8kHX$9x!Bz0`0iPg3G*~Sl_|RE&JfaNVr^Y zay#n7B(7cSqOg`Y3T=$9j3sIuzU>{mb>eEx@&J9W{tY3(JP$NMmXKz@kSx>BcUI$s zW^g&KThPzzMQeE}mo-;6nz?syW&0#`>|OlDmL*N`*xl(S$2|yqxcI2sKa*}rdV2A- zaFI{$c+*DT?xIyN%IuDhhdY$B4+#n@F8DsWSM2jrpA~aHa5RXETQL1Q;{r-{=BR1{ zo$ch^WY$#1_pW0L$zW)%-$V9PcJN}kbQ@@y!E}oP;E?-9;_n0b(i!YD8f0o+R798f zbv*LjQ_=bMU*9i{62+@jCNE8c`&_{h%tqCo_S=H-(xO1BDI8^sFGLwT08hMtm<9zJ zJxN)ojOhrfM43Ma`F}pUIV@Tp}?ZoOxckp0=TOdt$isSo`q#bZ*!;pYa>w^__M7<+1ux{s>gZHIddp z>jd-ipCo0tY@9u^tgN3kmhW4?V}WE0j(U~_j`}|-jbl#7EIazLAKTnzWj{>0Cl_|% zHceoKN5+kMMdb+Vlz5imlPMEKe;q>F&0+pvXv7eLEc2-1|8T-c!$|+-M#HJX-{GHe zj>)(=UQqu+d@#=bchLXD{1@>5yE5focd0n@gJ?})4E#_D#p-a7JCb-%#f;Rr9l}RKn14SplG1RmUQf`rJ`+{JWItu{tl$)trC)UU@LC$~n2x`C@~LXa z#=J5+Y`uvUtSxV@aJ8+S-9`Rx_Wc;S;s2L$`cL^IFq+_T$e(1fteoQ?chM)6m7RUA z@$&MdLU*5*6;9SIi#6HX4Kmk?vn@kt`?PE1O8K3`r6&1~j*d=vn1HTLC!@c({~1sh z;a@w+gl)@Q#(D|Lxsj?@g7$OA<2qIUwC`nq6X%e0(0Sn4IU;_^&QKx8| zHEsTd1^I*g|Jp6~Yv%>tPOovddfTPi{{*gj`1WV7OsRY8|I7S)Lef(O>IAWa;UOHR zhr{#u2}-)y-1rwP{%xca{2A7v{JTKRoQpl@e!o~e;+4O$dG5haiuUm@6I3Bo;a>~y zKMrYw)GawT{7Kxu{u}zgRsL>-zblck8r5^%S?>E;$kfI@=H6eA+j>-NF=ifWF z2hy~1dV6L27ZWZX?(g0QkfjP`^64>g32Bb+E3!|pOrW%{+jIRRiApBt-`T1p7n2<~ zFDI$=*c&&C6`O85x88m)*mz9B=kdvx(h(y&jkfk*Q;JGZZWTaOrgY_X1h zij22Uc}r=WNOzj3vvDX)N0mYPFojNROrp%d)rmxt_Q~!YjI`-!&JT0`vz}AE8T|*S zHK7G5FROL2Ea&JNA%!RYmF*GH-`o~x8Rb23i@$y~ANsB0wH0{z(hGRy+@)`GFhk7w z<_2C@RTr945r6VF(JX0ozNZW})%HAmu+Xe@=iTZTOZTunKGCk4%e>l=7Fd*Txn4z+ zeym!5o;Z0WO|g&P-Vo_-5&DySen+-5ygwF9DJd9j)y=5_udND%y$h|gL%=|&L7+s( zKw_@N9|w~haiB8vyxkG{>y_DsDndBuVoaGSgi?Evwfm5pHmBDA48Nl`pa*Np9o~n_ zvapp#u@ty_$2*Y3IqQzLI4Ol+6DG}MZL%T-ilSP&8sM?HP#J4o%?=KUR3RyVAXBSd zL`-_wNAn2zUtC}-rBYFBv*Ryl3wWNMXDJj#s$q;0U(@vJxvV70;c~D^-!=IjLsQm) zIKvfa#__PaO9?$TA^5J$AvOwGCl&ZAh&x^+CV+buV}+Z6(P(z{U$2Dno$Po*m``EjQXJoNPVq+*pZ@|19w zKUS3~6^Fr05|2kH;T>?g$eOr&D>6glW-NPuEm!15j5kzRAk!kCT-0CZp?)QqXPSBF zxfp#bAzZn&z)c;-56O?2!o(A^AmNzTv);o+spzG4#Vf4*ZT&3D^1DkZ!J1lVVVAs$We^e3&py>;7Jo&F~j;u1%5Zh9okL?pO7WnguT+I;;|i* zza`c}rs1@SH7E$`K6 z$+T2TK|YLb{^9q#j`*TvTg2A=fxQO&fp3nE7>f;Q@mO%()x8?^V6?oYA}m|fi>E#W z@2OI>o*@QrdF>wj-q3|u=RTE1ok!Qa+fb=AYWjOh?N_`#Q$d;N@6S`=c`Ut`2bCoK zzeZKrTk=oUg6Sn^@EvilsG9B>f8x@DtoW&9_?0rJ+k9@uoJvE0vt7J>hfFs8BH(Gy z;c4utHL}lia%vQ`aVjmXf|4vd>S={o%gQ7lm4kh(jU|50V3-)-LP{8HOd&CFR5#yz zA$q^kwodFg&Zs?4^GPydE#mMEI0%A_0+I_WMP?b-r0rW?lu7ZrrLX<+W4n$c&B_W3 zx>mtRzxXxr#0vqj!C}+ysYTXsVw(FI6V+)F@y!UwOG|<8MU4i&?zz-5%1-aR;YD%B z87;~&5Uc02WK%dGnIAX@Q9VjF*wImJUPe6B5iO1-+;%1mv`=X!f0qaZ_i`AhDw2RW zaol@OHG?*yL0ssyldD8U8F{O~YlL#t7c`fi`Cq^8m{PSHA4w^{jWm9|OD`~6ul8Dl z|L6pT<7&5Hc+;L~$>2P1?0$zk(rXJ6qCQii>A+8 z;AEydmpU5Tlt$#HS#q6d@aPP5nP_+6*OAz#^^uF0>pGSk&WxG?Z> zS+C)~5W3XLE;p3vC*z&Bj?)V=qE_L0_+aays2FT71I^6&p&ef`NyY%)+hEM4R)%o5ClRC&_Q zxuAG8%D?!f3K=vt{9b1(dP>SvAn1e;xKMS^#qP!P+y*2Os&&1tXSV4oz& zI&-(*aQq9LS*T{H1IRc0_C_9soIIHI-_xZ#cgkPmbT_l(5u0B zzOpEY3{L~^z<82h71A!GuloJ?;@;kBbG@_k>q>mwo~<*Rbj#BAU4K z4ssO5uNAis!W+U8TF8)0hMsw!*7+17>T4Yli( zXPV#6w?6pMI=|Qs*n3CVL7u>zO?fP+5jKLg= z&4Z|4wy3Yjm@l^Oaq~_{Ovxv&p6$;pk4YPn;_aPCG_jakVpcjlG@imAZcyB#0v3Aw zz50*8IdL%?Kjb_({CpV8Vx4gMot{>Vl^B*V#9Nh}BFCA+pKsrF(W(

NMJ6DKA@Y zmTtQ2Tgp%DytWa1QE^oG;x7BtRNr!rI%vi^Xx3mmK`~?Q-L(4_Kkrd2hzpVfr+p!t zqS!w7eB?hK;HZ6SZ1i?>mK$YAs}~g59oHw7kY0&c2@0f7+?D;FM9frRDjGhBKrltH zK&7CY?tCFlnI;9JNB>o*bp0ZBN$U7)2`=JI;rH{px-bE^Pf71t@ws2CB5()He;{hU zh$c3ebSKu%zjDYclu$a>Ga&RlG+h0{5|R%;6$a>O)Mx)ZAilCn(%9v}P>oQYD1zf! z!Z5eCDR?{ws18dA^YT38@*rx5i;1Qg5Wf22H#P2pw!Bz{zrQASv@D=NP-l+|v!c zRX~@DyYf<=qP(t;SFb+~v;gzPZu-yH%Sm(8yNyA1fz!S@)$2~xhTVgnz<5`@{hEok zr>{PSzh7daJ~*RlD3Wgb@v*k`lt8G?43RUL+Q>q@t(zNp732>c$E^#%SGBu>c=_fx zs40pBsO}9nf>EYM``Jbe@R-o_w|YV*Q^?q8*-r|RzR^4e1sF|Jj?sKiYkRy+f!4>y z+j`Ck<~J36PiOMHDI{+v=h`jYHO5`eC~kHHO|7IAjh>1t`iFT{(5kg&&U*j}y=qH< zgh3qmkj!z~fv<`Cih4lE5(>wy_wp*{$UW7pu|+bLEY@tQW`X;&1*BlRNiTZBbCXnL z!J%@b)uod1+%_|FoXuB&eXG^3HTNafGyZ-8hcfWVF?~MnchAW!+R}vwu6gyfJ}PyN z_rT(Xin~u?&f`PvxJjH^kLJl~&ibT)&s5U2AZ^B8b=Bgk-tpLJN7O~5dvhFTT{HLS znn>k3_=Hm~vh9KAR-rT=W1%eO`j~cYp+1)@kA+9}g2>i9^!l+OSfqzeTpFD>sz4-^ z&iZ|pKn}|@QBPF)Z%=bi8T)K!EjE8(MfslRGxKNdAwXpHdKSu1j#5v*u%!M{bLuyr z+d7*K%8g9U8AiKcYV$KD=gl^E=og59>gUi#&sO=4ZZc=I#vYfGogTt5@2sHQNju1z zS*gu(-XX;s$*Uppkw^K8K1vW;)|K7B*3GxKu;Wa4PvhBviTPUv!I->BJtD6)p|LtZ zWWz$yHK?j;c{Ze6#;#G2L{aYP!DfN#&Ae_N5ZT=M9ag>1KeFDYX(ds6pE-tf;z1a{sefe_7ve@Ou{cix@%5O@S4?Ed z_uk?)h-sQw6ZoG{eDXFYOV>yU<9N{Y-##K?T~Q)Jcs!EUX)l-RVFbT|d`0=RQ1_uo zH|;2|m;6&TjpSYydsy@@1 zj^^I%VNUncBw4aXaFM|Sd5l~YLv|8O;gxoKd4_s4>cF;;?Ag0HaNBZKibm=Kqd>(*0qyj5#h-E zh+CxMnI;@2QT57Jhr4ko~O%P%1o3U!=E{UNmS0sTxaDcOYDJn#XEU=Y*uHERo#g0U|@ z!u>=tCjDF1R_bxx44LSx7G3rJ=!?fSgPa&5PW2#@mP}tcOnInz=+~eF<|)D!=T98l zWU2@i0$L5sCb7AC=tr{3#BDs12q|<`?nta{mw1UtU;LmxF(k3;2|OvEqDRBn5^$ye zPXF^(#wP5L5CV;G%NyO~dZt|2OT8G}c?zFb`!>xOODAW8Jk@}~T#_w^zG`2^KrNeJ zUb@EL_bY6WK#4F*s-V#$I?31n1O=`u%q6ggH3P9*OPaC2mo`AhR?d$mwml|Nl_+4U z^moMG*JI6=b`EDJ7}Ypj?+YJPD`ko?YN;l6SmOvd7}_8zwUIkTExAkzXBEx6k8u*| zZA?NTd75yZ5wV|O2_vsMNNI$Sq@o*`wZoEDcO1uCMETp)a8+m*v$$E|!Y^>j+<_N7!x`u}546EvdMnv^pI(DmXB=+dVe>uGfP; z+VZBf1&_Cl^rATY3%v=>wgnfw_sSm8yUd^mET4h=#@AeNK^=}=@=UtR&TBOnAsAD37QgnG+LuN0c0=#0c7A!V(ZT(Q)jnXt@zyLx<^ZL!%MQwU$k< zLNeyaQH2J%I z>3XT_O^3IcT)qrmC%?6>f6JfS+{t3b+T{$|FThKU{1UNUXc2kD-meaUAgG*MXR-9i z*mC5kmM*xbAA)l7g3l1?b4|y&&~LDzB~(j~5>xp#NtQClI4 zeaUvF&i3WM$1=-oKi`{K;m}C~#wZegG>>KNqVgj9d_hzf!jD^wpCV+%QG{}`x7aG= zq*cY2#DpT)quw8vMl|5sWc>jnWhaKS@Pd7TwSQ6ubL3J}mXtbjUlFhaz#XxozjO$3vsn%TkS-~1TwVQfZm)Zut6+USPEguKV=6=rL?H?tIe@d zQosu)mS5qd)IYb#qYw+So0fUs?9c(FOQ&7mof*&nBns`e&3tPv9LzE#S`Wat;sU0% zN_4jMlgS{=*I@VVS}{L&`N6HZtva#P4Fxg8pNQS)HU#Q?v*mR01VPUlB~zokqt~jm z;=zIxou~;fTWQ?M@tNO5)+GW}KVe2Hrza1HBs}fq8<^h`n^xzY)5s}X@#ulsixFW8$p%HaO(v#>-0m#+GC_`rP+hyT{pybsmFgPG zxkHG%dEC9Kac&Y&s4|#bu+rDnOeon4fpS%>+r3*oTpxQd)x4q8^~UYIFM|=6SVE$+ zei$XJjen|?D9kKHU=SO+9eSJ(PchN#Wl1kZR<5x1>yPlx_oSgFWZwBjZsnG!%>xgN@^jQkuk49Ka51OJA&8eCM)@_SNTk8#lgKPq zV6^J@pN&_k`lsp@6AtsKO}i8c1N7&gdPunhGCw~${QThBJ3Z>57~M+^cU$MWPRby2 zDFts!N3@owMHw$O#>}fsc5EU|=91uYif$qPg<58+YY&&yBzX%Ph6W>_=1R^iU(Gn4 z74@^!^>_fxg`2mdtW;gQ11txuDgLC3*0(W1@ERdyt=gpdo?QX_rAHGP$pCvHXLH(i zvd_8~?L{e@$&jTA?EtYcOOOs3t&goan|WSfS8^-&?*Y%?PF&-`8hMpByGJ_ULm;wvGPXxc*WrF11wGFh z^$la^1Ppc&5?M1j?5nXw%^4v>XHSc{i;z>Qp}H^FVy}JX+b2Xyeka&@V@sWM7pBXG z{&NGmepU(=Wo?6Md<5rBiR=X54;JX@9-{YQ5xm_I?W}4089zlAbAO_}x?>fc>YpcM zcI?zNP`8UuCR!{y*O49aU9thW^BoFE-Yb$ycV*`_X)1GC>LV3^d)X$NRBRDjf6Tii zYZX(dVASpXxUTNJjaf>r)A@Xd1RkY~ct$0irupu}EHf>7cyG2xo870vJ?|0PW4T0_ zZYscsWi5=PGr~$&=evNlEs@jXiPo1$c#qHCE2WXfnwkQ_G3;hTbxZfJKO9TyKPG)` zd^2GpdOL5Whx4UFtHFq-oww{Fm;$%GH9`P23O zIygX~gzDnGSXQAB&Lz;r-{^O4Kk5>T{(w%NHM#!XfHHR}!^{2d3~#j{wHZXDq1+x8 zS3)MqePL7DL!*aAu&z(j8D#%Tr;F?}daI?!5=Oj{%I22_#SW0q-eUc6`qVpGVVc`^ zx9!xMF_Sq&P)IL-(ZHI%agvJ{+0CHMEX4%TT?c1k4c6?$jrja{DVLv5B+H?k?BDJf{oQZER95bRuPPHo*KgWU}AW7NHyi((mBJM2-*Ihx2$x#yxe1!U z5pl&w1%VXJ8OieNX!f1LxY@zy4Xp>C>dLRJM004TK0006}LOnx313&{nG5`Po z9?1X+ZDvLm0^Bh3$OQ_J3x!G&CJhx|OQI0Z&45iPn$;Td17ZR?sgq1sRUj2uG+|&y zR7$`KAcBV1n;dbW0Wer-FQ^uk22H0YXIL2_VgvUddKhJ!4U#F-ZDV5*wS^iG{G{ts zjz|qu92{?0m_s*R8$m9*S3;^OhK!FB&0R0x0mR8OJqJi X*{~z?qM;&`aQ-gjig2MJVU+Q%g12bg literal 310 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 diff --git a/data/centered_ipd_twt.rda b/data/centered_ipd_twt.rda index 0fda5215b8d4622aa3895830444e8b326adcd9b3..b1949e88fddb36a6565efc3508af2d7e98572a85 100644 GIT binary patch literal 7889 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 QzKtuFUrV|tEi&xC0MrT+yZ`_I diff --git a/data/pseudo_ipd_sat.rda b/data/pseudo_ipd_sat.rda index 40df7724b2f3d8324aac4f8ca7507f9e2046a966..4d9f29cb4651d99b1c1776d093fdd97e89ab6a0d 100644 GIT binary patch delta 3027 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 DHE*DX literal 7006 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 diff --git a/man/adrs_sat.Rd b/man/adrs_sat.Rd new file mode 100644 index 00000000..4a109eef --- /dev/null +++ b/man/adrs_sat.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{adrs_sat} +\alias{adrs_sat} +\title{Binary outcome data from single arm trial} +\format{ +A data frame with 500 rows and 5 columns: +\describe{ +\item{USUBJID}{} +\item{ARM}{} +\item{AVAL}{} +\item{PARAM}{} +\item{RESPONSE}{} +} +} +\usage{ +adrs_sat +} +\description{ +Binary outcome data from single arm trial +} +\seealso{ +Other unanchored datasets: +\code{\link{adsl_sat}}, +\code{\link{adtte_sat}}, +\code{\link{agd}}, +\code{\link{centered_ipd_sat}}, +\code{\link{pseudo_ipd_sat}} +} +\concept{unanchored datasets} +\keyword{dataset} diff --git a/man/adsl_sat.Rd b/man/adsl_sat.Rd new file mode 100644 index 00000000..6fd7b635 --- /dev/null +++ b/man/adsl_sat.Rd @@ -0,0 +1,36 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{adsl_sat} +\alias{adsl_sat} +\title{Patient data from single arm study} +\format{ +A data frame with 500 rows and 9 columns: +\describe{ +\item{X}{} +\item{USUBJID}{} +\item{ARM}{} +\item{AGE}{} +\item{SEX}{} +\item{SMOKE}{} +\item{ECOG0}{} +\item{N_PR_THER}{} +\item{SEX_MALE}{} +} +} +\usage{ +adsl_sat +} +\description{ +Patient data from single arm study +} +\seealso{ +Other unanchored datasets: +\code{\link{adrs_sat}}, +\code{\link{adtte_sat}}, +\code{\link{agd}}, +\code{\link{centered_ipd_sat}}, +\code{\link{pseudo_ipd_sat}} +} +\concept{unanchored datasets} +\keyword{dataset} diff --git a/man/adsl_twt.Rd b/man/adsl_twt.Rd new file mode 100644 index 00000000..052484ba --- /dev/null +++ b/man/adsl_twt.Rd @@ -0,0 +1,35 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{adsl_twt} +\alias{adsl_twt} +\title{Patient data from two arm trial} +\format{ +A data frame with 1000 rows and 9 columns: +\describe{ +\item{X}{The ID of the patients.} +\item{USUBJID}{Unique subject identifiers for patients.} +\item{ARM}{Assigned treatment arm.} +\item{AGE}{Age in years at baseline.} +\item{SEX}{Sex of patient recorded as character "Male"/"Female"} +\item{SMOKE}{Smoking status at baseline as integer 0/1} +\item{ECOG0}{ECOG score at baseline as integer 0/1} +\item{N_PR_THER}{Number of prior therapies received as integer 1, 2, 3, 4} +\item{SEX_MALE}{Indicator of SEX == "Male" as numeric 1/0} +} +} +\usage{ +adsl_twt +} +\description{ +Patient data from two arm trial +} +\seealso{ +Other anchored datasets: +\code{\link{adtte_twt}}, +\code{\link{agd}}, +\code{\link{centered_ipd_twt}}, +\code{\link{pseudo_ipd_twt}} +} +\concept{anchored datasets} +\keyword{dataset} diff --git a/man/adtte_sat.Rd b/man/adtte_sat.Rd new file mode 100644 index 00000000..1cd29cae --- /dev/null +++ b/man/adtte_sat.Rd @@ -0,0 +1,37 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{adtte_sat} +\alias{adtte_sat} +\title{Survival data from single arm trial} +\format{ +A data frame with 500 rows and 10 columns: +\describe{ +\item{USUBJID}{} +\item{ARM}{} +\item{EVNT}{} +\item{AVAL}{} +\item{AVALU}{} +\item{PARAMCD}{} +\item{PARAM}{} +\item{CNSR}{} +\item{TIME}{} +\item{EVENT}{} +} +} +\usage{ +adtte_sat +} +\description{ +Survival data from single arm trial +} +\seealso{ +Other unanchored datasets: +\code{\link{adrs_sat}}, +\code{\link{adsl_sat}}, +\code{\link{agd}}, +\code{\link{centered_ipd_sat}}, +\code{\link{pseudo_ipd_sat}} +} +\concept{unanchored datasets} +\keyword{dataset} diff --git a/man/adtte_twt.Rd b/man/adtte_twt.Rd new file mode 100644 index 00000000..c74af8fe --- /dev/null +++ b/man/adtte_twt.Rd @@ -0,0 +1,36 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{adtte_twt} +\alias{adtte_twt} +\title{Survival data from two arm trial} +\format{ +A data frame with 1000 rows and 10 columns: +\describe{ +\item{USUBJID}{} +\item{ARM}{} +\item{EVNT}{} +\item{AVAL}{} +\item{AVALU}{} +\item{PARAMCD}{} +\item{PARAM}{} +\item{CNSR}{} +\item{TIME}{} +\item{EVENT}{} +} +} +\usage{ +adtte_twt +} +\description{ +Survival data from two arm trial +} +\seealso{ +Other anchored datasets: +\code{\link{adsl_twt}}, +\code{\link{agd}}, +\code{\link{centered_ipd_twt}}, +\code{\link{pseudo_ipd_twt}} +} +\concept{anchored datasets} +\keyword{dataset} diff --git a/man/agd.Rd b/man/agd.Rd new file mode 100644 index 00000000..c43cbc5e --- /dev/null +++ b/man/agd.Rd @@ -0,0 +1,43 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{agd} +\alias{agd} +\title{Aggregate effect modifier data from published study} +\format{ +A data frame with 3 rows and 9 columns: +\describe{ +\item{STUDY}{} +\item{ARM}{} +\item{N}{} +\item{AGE_MEAN}{} +\item{AGE_MEDIAN}{} +\item{AGE_SD}{} +\item{SEX_MALE_COUNT}{} +\item{ECOG0_COUNT}{} +\item{SMOKE_COUNT}{} +} +} +\usage{ +agd +} +\description{ +This data is formatted to be used in \code{\link[=center_ipd]{center_ipd()}}. +} +\seealso{ +Other unanchored datasets: +\code{\link{adrs_sat}}, +\code{\link{adsl_sat}}, +\code{\link{adtte_sat}}, +\code{\link{centered_ipd_sat}}, +\code{\link{pseudo_ipd_sat}} + +Other anchored datasets: +\code{\link{adsl_twt}}, +\code{\link{adtte_twt}}, +\code{\link{centered_ipd_twt}}, +\code{\link{pseudo_ipd_twt}} +} +\concept{anchored datasets} +\concept{unanchored datasets} +\keyword{dataset} diff --git a/man/anchored-data.Rd b/man/anchored-data.Rd deleted file mode 100644 index 5f4bdd44..00000000 --- a/man/anchored-data.Rd +++ /dev/null @@ -1,57 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/data.R -\docType{data} -\name{anchored-data} -\alias{anchored-data} -\alias{adsl_twt} -\alias{adtte_twt} -\alias{pseudo_ipd_twt} -\alias{centered_ipd_twt} -\title{Dummy Trial Data for anchored MAIC} -\format{ -\strong{adsl_twt}: a data frame with 1000 rows and 9 columns: -\describe{ -\item{X}{The ID of the patients.} -\item{USUBJID}{Unique subject identifiers for patients.} -\item{ARM}{Assigned treatment arm.} -\item{AGE}{Age in years at baseline.} -\item{SEX}{Sex of patient recorded as character "Male"/"Female"} -\item{SMOKE}{Smoking status at baseline as integer 0/1} -\item{ECOG0}{ECOG score at baseline as integer 0/1} -\item{N_PR_THER}{Number of prior therapies received as integer 1, 2, 3, 4} -\item{SEX_MALE}{Indicator of SEX == "Male" as numeric 1/0} -} - -\strong{adtte_twt}: a data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} - -\strong{pseudo_ipd_twt}: a data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} - -\strong{centered_ipd_twt}: a data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} -} -\source{ -These datasets are generated by the dummy_anchored.R script. -} -\usage{ -adsl_twt - -adtte_twt - -pseudo_ipd_twt - -centered_ipd_twt -} -\description{ -These datasets contains adsl_twt, adtte_twt, -centered_ipd_twt, pseudo_ipd_twt (AgD, tte data) -} -\keyword{dataset} -\keyword{datasets} diff --git a/man/centered_ipd_sat.Rd b/man/centered_ipd_sat.Rd new file mode 100644 index 00000000..d49be4a3 --- /dev/null +++ b/man/centered_ipd_sat.Rd @@ -0,0 +1,42 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{centered_ipd_sat} +\alias{centered_ipd_sat} +\title{Centered patient data from single arm trial} +\format{ +A data frame with 500 rows and 15 columns: +\describe{ +\item{X}{} +\item{USUBJID}{} +\item{ARM}{} +\item{AGE}{} +\item{SEX}{} +\item{SMOKE}{} +\item{ECOG0}{} +\item{N_PR_THER}{} +\item{SEX_MALE}{} +\item{AGE_CENTERED}{} +\item{AGE_MEDIAN_CENTERED}{} +\item{AGE_SQUARED_CENTERED}{} +\item{SEX_MALE_CENTERED}{} +\item{ECOG0_CENTERED}{} +\item{SMOKE_CENTERED}{} +} +} +\usage{ +centered_ipd_sat +} +\description{ +Centered patient data from single arm trial +} +\seealso{ +Other unanchored datasets: +\code{\link{adrs_sat}}, +\code{\link{adsl_sat}}, +\code{\link{adtte_sat}}, +\code{\link{agd}}, +\code{\link{pseudo_ipd_sat}} +} +\concept{unanchored datasets} +\keyword{dataset} diff --git a/man/centered_ipd_twt.Rd b/man/centered_ipd_twt.Rd new file mode 100644 index 00000000..f603dd0a --- /dev/null +++ b/man/centered_ipd_twt.Rd @@ -0,0 +1,41 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{centered_ipd_twt} +\alias{centered_ipd_twt} +\title{Centered patient data from two arm trial} +\format{ +A data frame with 1000 rows and 15 columns: +\describe{ +\item{X}{} +\item{USUBJID}{} +\item{ARM}{} +\item{AGE}{} +\item{SEX}{} +\item{SMOKE}{} +\item{ECOG0}{} +\item{N_PR_THER}{} +\item{SEX_MALE}{} +\item{AGE_CENTERED}{} +\item{AGE_MEDIAN_CENTERED}{} +\item{AGE_SQUARED_CENTERED}{} +\item{SEX_MALE_CENTERED}{} +\item{ECOG0_CENTERED}{} +\item{SMOKE_CENTERED}{} +} +} +\usage{ +centered_ipd_twt +} +\description{ +Centered patient data from two arm trial +} +\seealso{ +Other anchored datasets: +\code{\link{adsl_twt}}, +\code{\link{adtte_twt}}, +\code{\link{agd}}, +\code{\link{pseudo_ipd_twt}} +} +\concept{anchored datasets} +\keyword{dataset} diff --git a/man/pseudo_ipd_sat.Rd b/man/pseudo_ipd_sat.Rd new file mode 100644 index 00000000..f0a075f7 --- /dev/null +++ b/man/pseudo_ipd_sat.Rd @@ -0,0 +1,30 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{pseudo_ipd_sat} +\alias{pseudo_ipd_sat} +\title{Pseudo individual patient survival data from published study} +\format{ +A data frame with 300 rows and 3 columns: +\describe{ +\item{Time}{} +\item{Event}{} +\item{ARM}{} +} +} +\usage{ +pseudo_ipd_sat +} +\description{ +Pseudo individual patient survival data from published study +} +\seealso{ +Other unanchored datasets: +\code{\link{adrs_sat}}, +\code{\link{adsl_sat}}, +\code{\link{adtte_sat}}, +\code{\link{agd}}, +\code{\link{centered_ipd_sat}} +} +\concept{unanchored datasets} +\keyword{dataset} diff --git a/man/pseudo_ipd_twt.Rd b/man/pseudo_ipd_twt.Rd new file mode 100644 index 00000000..d29e21b7 --- /dev/null +++ b/man/pseudo_ipd_twt.Rd @@ -0,0 +1,29 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{pseudo_ipd_twt} +\alias{pseudo_ipd_twt} +\title{Pseudo individual patient survival data from published two arm study} +\format{ +A data frame with 800 rows and 3 columns: +\describe{ +\item{Time}{} +\item{Event}{} +\item{ARM}{} +} +} +\usage{ +pseudo_ipd_twt +} +\description{ +Pseudo individual patient survival data from published two arm study +} +\seealso{ +Other anchored datasets: +\code{\link{adsl_twt}}, +\code{\link{adtte_twt}}, +\code{\link{agd}}, +\code{\link{centered_ipd_twt}} +} +\concept{anchored datasets} +\keyword{dataset} diff --git a/man/unanchored-data.Rd b/man/unanchored-data.Rd deleted file mode 100644 index 31ca6385..00000000 --- a/man/unanchored-data.Rd +++ /dev/null @@ -1,75 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/data.R -\docType{data} -\name{unanchored-data} -\alias{unanchored-data} -\alias{adsl_sat} -\alias{adtte_sat} -\alias{pseudo_ipd_sat} -\alias{agd} -\alias{centered_ipd_sat} -\alias{adrs_sat} -\title{Dummy Single-arm Trial Data for Unanchored MAIC} -\format{ -\strong{adsl_sat}: a data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} - -\strong{adtte_sat}: a data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} - -\strong{pseudo_ipd_sat}: a data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} - -\strong{agd}: a data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} - -\strong{centered_ipd_sat}: a data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} - -\strong{adrs_sat}: a data frame with xx rows and x columns: -\describe{ -\item{id}{The ID of the patients.} -} - -An object of class \code{data.frame} with 500 rows and 10 columns. - -An object of class \code{data.frame} with 300 rows and 3 columns. - -An object of class \code{data.frame} with 3 rows and 9 columns. - -An object of class \code{data.frame} with 500 rows and 15 columns. - -An object of class \code{data.frame} with 500 rows and 5 columns. -} -\source{ -These datasets are generated by the dummy_unanchored.R script. -} -\usage{ -adsl_sat - -adtte_sat - -pseudo_ipd_sat - -agd - -centered_ipd_sat - -adrs_sat -} -\description{ -These datasets contains adsl_sat, adtte_sat, adrs_sat, -agd (AgD of effect modifiers), pseudo_ipd_sat (AgD, tte data) -} -\keyword{dataset} -\keyword{datasets} From becc5ac3b4f850e61a4b51fce15913ab4ce5ab2e Mon Sep 17 00:00:00 2001 From: "27856297+dependabot-preview[bot]@users.noreply.github.com" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:02:53 +0000 Subject: [PATCH 08/18] [skip roxygen] [skip vbump] Roxygen Man Pages Auto Update --- man/adsl_sat.Rd | 3 +-- man/adsl_twt.Rd | 3 +-- man/centered_ipd_sat.Rd | 3 +-- man/centered_ipd_twt.Rd | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/man/adsl_sat.Rd b/man/adsl_sat.Rd index 6fd7b635..e5e5bbe4 100644 --- a/man/adsl_sat.Rd +++ b/man/adsl_sat.Rd @@ -5,9 +5,8 @@ \alias{adsl_sat} \title{Patient data from single arm study} \format{ -A data frame with 500 rows and 9 columns: +a data frame with 500 rows and 8 columns: \describe{ -\item{X}{} \item{USUBJID}{} \item{ARM}{} \item{AGE}{} diff --git a/man/adsl_twt.Rd b/man/adsl_twt.Rd index 052484ba..36911a1e 100644 --- a/man/adsl_twt.Rd +++ b/man/adsl_twt.Rd @@ -5,9 +5,8 @@ \alias{adsl_twt} \title{Patient data from two arm trial} \format{ -A data frame with 1000 rows and 9 columns: +A data frame with 1000 rows and 8 columns: \describe{ -\item{X}{The ID of the patients.} \item{USUBJID}{Unique subject identifiers for patients.} \item{ARM}{Assigned treatment arm.} \item{AGE}{Age in years at baseline.} diff --git a/man/centered_ipd_sat.Rd b/man/centered_ipd_sat.Rd index d49be4a3..64a86316 100644 --- a/man/centered_ipd_sat.Rd +++ b/man/centered_ipd_sat.Rd @@ -5,9 +5,8 @@ \alias{centered_ipd_sat} \title{Centered patient data from single arm trial} \format{ -A data frame with 500 rows and 15 columns: +A data frame with 500 rows and 14 columns: \describe{ -\item{X}{} \item{USUBJID}{} \item{ARM}{} \item{AGE}{} diff --git a/man/centered_ipd_twt.Rd b/man/centered_ipd_twt.Rd index f603dd0a..8dc2fbdc 100644 --- a/man/centered_ipd_twt.Rd +++ b/man/centered_ipd_twt.Rd @@ -5,9 +5,8 @@ \alias{centered_ipd_twt} \title{Centered patient data from two arm trial} \format{ -A data frame with 1000 rows and 15 columns: +A data frame with 1000 rows and 14 columns: \describe{ -\item{X}{} \item{USUBJID}{} \item{ARM}{} \item{AGE}{} From 6e99a1fc941e92b94903aa26b92cc0850e1809f3 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Thu, 20 Jun 2024 16:47:07 +0200 Subject: [PATCH 09/18] descriptions --- .pre-commit-config.yaml | 1 + R/data.R | 143 ++++++++++++++++++++-------------------- inst/WORDLIST | 50 +++++++------- man/adsl_sat.Rd | 17 ++--- man/adtte_sat.Rd | 20 +++--- man/adtte_twt.Rd | 20 +++--- man/agd.Rd | 18 ++--- man/centered_ipd_sat.Rd | 28 ++++---- man/centered_ipd_twt.Rd | 28 ++++---- man/pseudo_ipd_sat.Rd | 6 +- man/pseudo_ipd_twt.Rd | 6 +- 11 files changed, 169 insertions(+), 168 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 47798fb1..9beaf36a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,6 +13,7 @@ repos: - shiny - lubridate - DescTools + - lmtest # codemeta must be above use-tidy-description when both are used # - id: codemeta-description-updated - id: use-tidy-description diff --git a/R/data.R b/R/data.R index a4d95c33..da7d9312 100644 --- a/R/data.R +++ b/R/data.R @@ -3,14 +3,15 @@ #' Patient data from single arm study #' @format a data frame with 500 rows and 8 columns: #' \describe{ -#' \item{USUBJID}{} -#' \item{ARM}{} -#' \item{AGE}{} -#' \item{SEX}{} -#' \item{SMOKE}{} -#' \item{ECOG0}{} -#' \item{N_PR_THER}{} -#' \item{SEX_MALE}{} +#' \item{USUBJID}{Unique subject identifiers for patients.} +#' \item{ARM}{Assigned treatment arm.} +#' \item{AGE}{Age in years at baseline.} +#' \item{SEX}{Sex of patient recorded as character `"Male"`/`"Female"`.} +#' \item{SMOKE}{Smoking status at baseline as integer `0`/`1`.} +#' \item{ECOG0}{ECOG score at baseline as integer `0`/`1`.} +#' \item{N_PR_THER}{Number of prior therapies received as integer `1, 2, 3, 4`.} +#' \item{SEX_MALE}{Indicator of `SEX == "Male"` as numeric `1`/`0`.} +#' #' } #' @keywords dataset #' @family unanchored datasets @@ -19,16 +20,16 @@ #' Survival data from single arm trial #' @format A data frame with 500 rows and 10 columns: #' \describe{ -#' \item{USUBJID}{} -#' \item{ARM}{} -#' \item{EVNT}{} -#' \item{AVAL}{} -#' \item{AVALU}{} -#' \item{PARAMCD}{} -#' \item{PARAM}{} -#' \item{CNSR}{} -#' \item{TIME}{} -#' \item{EVENT}{} +#' \item{USUBJID}{Unique subject identifiers for patients.} +#' \item{ARM}{Assigned treatment arm, `"A"`.} +#' \item{EVNT}{Event indicator `0`/`1`.} +#' \item{AVAL}{Analysis value which in this dataset overall survival time in days.} +#' \item{AVALU}{Unit of `AVAL`.} +#' \item{PARAMCD}{Paramater code of `AVAL`, `"OS"`.} +#' \item{PARAM}{Parameter name of `AVAL`, `"Overall Survival`.} +#' \item{CNSR}{Censoring indicator `0`/`1`.} +#' \item{TIME}{Survival time in days.} +#' \item{EVENT}{Event indicator `0`/`1`.} #' } #' @family unanchored datasets #' @keywords dataset @@ -38,9 +39,9 @@ #' Pseudo individual patient survival data from published study #' @format A data frame with 300 rows and 3 columns: #' \describe{ -#' \item{Time}{} -#' \item{Event}{} -#' \item{ARM}{} +#' \item{Time}{Survival time in days.} +#' \item{Event}{Event indicator `0`/`1`.} +#' \item{ARM}{Assigned treatment arm, `"B"`.} #' } #' @family unanchored datasets #' @keywords dataset @@ -50,20 +51,20 @@ #' Centered patient data from single arm trial #' @format A data frame with 500 rows and 14 columns: #' \describe{ -#' \item{USUBJID}{} -#' \item{ARM}{} -#' \item{AGE}{} -#' \item{SEX}{} -#' \item{SMOKE}{} -#' \item{ECOG0}{} -#' \item{N_PR_THER}{} -#' \item{SEX_MALE}{} -#' \item{AGE_CENTERED}{} -#' \item{AGE_MEDIAN_CENTERED}{} -#' \item{AGE_SQUARED_CENTERED}{} -#' \item{SEX_MALE_CENTERED}{} -#' \item{ECOG0_CENTERED}{} -#' \item{SMOKE_CENTERED}{} +#' \item{USUBJID}{Unique subject identifiers for patients.} +#' \item{ARM}{Assigned treatment arm.} +#' \item{AGE}{Age in years at baseline.} +#' \item{SEX}{Sex of patient recorded as character `"Male"`/`"Female"`.} +#' \item{SMOKE}{Smoking status at baseline as integer `0`/`1`.} +#' \item{ECOG0}{ECOG score at baseline as integer `0`/`1`.} +#' \item{N_PR_THER}{Number of prior therapies received as integer `1, 2, 3, 4`.} +#' \item{SEX_MALE}{Indicator of `SEX == "Male"` as numeric `1`/`0`.} +#' \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data [agd].} +#' \item{AGE_MEDIAN_CENTERED}{Age greater/less than median age in [agd] coded as TODO .} +#' \item{AGE_SQUARED_CENTERED}{TODO} +#' \item{SEX_MALE_CENTERED}{TODO} +#' \item{ECOG0_CENTERED}{TODO} +#' \item{SMOKE_CENTERED}{TODO} #' } #' @family unanchored datasets #' @keywords dataset @@ -92,15 +93,15 @@ #' #' @format A data frame with 3 rows and 9 columns: #' \describe{ -#' \item{STUDY}{} -#' \item{ARM}{} -#' \item{N}{} -#' \item{AGE_MEAN}{} -#' \item{AGE_MEDIAN}{} -#' \item{AGE_SD}{} -#' \item{SEX_MALE_COUNT}{} -#' \item{ECOG0_COUNT}{} -#' \item{SMOKE_COUNT}{} +#' \item{STUDY}{The study name, Study_XXXX} +#' \item{ARM}{Study arm name or total} +#' \item{N}{Number of observations in study arm} +#' \item{AGE_MEAN}{Mean age in study arm} +#' \item{AGE_MEDIAN}{Median age in study arm} +#' \item{AGE_SD}{TODO} +#' \item{SEX_MALE_COUNT}{Number of male patients} +#' \item{ECOG0_COUNT}{Number of patients with ECOG score TODO} +#' \item{SMOKE_COUNT}{Number of smokers} #' } #' @family unanchored datasets #' @family anchored datasets @@ -130,16 +131,16 @@ #' Survival data from two arm trial #' @format A data frame with 1000 rows and 10 columns: #' \describe{ -#' \item{USUBJID}{} -#' \item{ARM}{} -#' \item{EVNT}{} -#' \item{AVAL}{} -#' \item{AVALU}{} -#' \item{PARAMCD}{} -#' \item{PARAM}{} -#' \item{CNSR}{} -#' \item{TIME}{} -#' \item{EVENT}{} +#' \item{USUBJID}{Unique subject identifiers for patients.} +#' \item{ARM}{Assigned treatment arm, `"A"`, `"C"`.} +#' \item{EVNT}{Event indicator `0`/`1`.} +#' \item{AVAL}{Analysis value which in this dataset overall survival time in days.} +#' \item{AVALU}{Unit of `AVAL`.} +#' \item{PARAMCD}{Parameter code of `AVAL`, `"OS"`.} +#' \item{PARAM}{Parameter name of `AVAL`, `"Overall Survival`.} +#' \item{CNSR}{Censoring indicator `0`/`1`.} +#' \item{TIME}{Survival time in days.} +#' \item{EVENT}{Event indicator `0`/`1`.} #' } #' @family anchored datasets #' @keywords dataset @@ -149,9 +150,9 @@ #' Pseudo individual patient survival data from published two arm study #' @format A data frame with 800 rows and 3 columns: #' \describe{ -#' \item{Time}{} -#' \item{Event}{} -#' \item{ARM}{} +#' \item{Time}{Survival time in days.} +#' \item{Event}{Event indicator `0`/`1`.} +#' \item{ARM}{Assigned treatment arm, `"B"`, `"C"`.} #' } #' @family anchored datasets #' @keywords dataset @@ -161,20 +162,20 @@ #' Centered patient data from two arm trial #' @format A data frame with 1000 rows and 14 columns: #' \describe{ -#' \item{USUBJID}{} -#' \item{ARM}{} -#' \item{AGE}{} -#' \item{SEX}{} -#' \item{SMOKE}{} -#' \item{ECOG0}{} -#' \item{N_PR_THER}{} -#' \item{SEX_MALE}{} -#' \item{AGE_CENTERED}{} -#' \item{AGE_MEDIAN_CENTERED}{} -#' \item{AGE_SQUARED_CENTERED}{} -#' \item{SEX_MALE_CENTERED}{} -#' \item{ECOG0_CENTERED}{} -#' \item{SMOKE_CENTERED}{} +#' \item{USUBJID}{Unique subject identifiers for patients.} +#' \item{ARM}{Assigned treatment arm.} +#' \item{AGE}{Age in years at baseline.} +#' \item{SEX}{Sex of patient recorded as character `"Male"`/`"Female"`.} +#' \item{SMOKE}{Smoking status at baseline as integer `0`/`1`.} +#' \item{ECOG0}{ECOG score at baseline as integer `0`/`1`.} +#' \item{N_PR_THER}{Number of prior therapies received as integer `1, 2, 3, 4`.} +#' \item{SEX_MALE}{Indicator of `SEX == "Male"` as numeric `1`/`0`.} +#' \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data [agd].} +#' \item{AGE_MEDIAN_CENTERED}{Age greater/less than median age in [agd] coded as TODO .} +#' \item{AGE_SQUARED_CENTERED}{TODO} +#' \item{SEX_MALE_CENTERED}{TODO} +#' \item{ECOG0_CENTERED}{TODO} +#' \item{SMOKE_CENTERED}{TODO} #' } #' @keywords dataset #' @family anchored datasets diff --git a/inst/WORDLIST b/inst/WORDLIST index 65fa4e77..ffac26da 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,60 +1,58 @@ +ADTTE ADaM +AgD +Azocar +Bucher +Comparator +DSU +ECOG +ESS +IPD +Kaplan +MAIC +Paramater +Phillippo +Pre +Remiro +Schoenfeld +Signorovitch +TSD +TTE +Texp +USUBJID +Unanchored +Univariable +XXXX adrs adsl -ADTTE adtte -AgD agd agg al -Azocar binarize -Bucher -Comparator comparator confounders csv -DSU dummize dummized -ECOG -ESS et frac ggplot glm hta initializer -IPD ipd -Kaplan -MAIC multivariable optim pharma -Phillippo phillippo -Pre pre preprocessed -Remiro reproducibility -Schoenfeld sd -Signorovitch signorovitch -Texp -TSD -TTE tte -<<<<<<< HEAD -twt -======= ->>>>>>> main -Unanchored unanchored -Univariable unscaled unstacked -USUBJID vcovHC diff --git a/man/adsl_sat.Rd b/man/adsl_sat.Rd index e5e5bbe4..181465f1 100644 --- a/man/adsl_sat.Rd +++ b/man/adsl_sat.Rd @@ -7,14 +7,15 @@ \format{ a data frame with 500 rows and 8 columns: \describe{ -\item{USUBJID}{} -\item{ARM}{} -\item{AGE}{} -\item{SEX}{} -\item{SMOKE}{} -\item{ECOG0}{} -\item{N_PR_THER}{} -\item{SEX_MALE}{} +\item{USUBJID}{Unique subject identifiers for patients.} +\item{ARM}{Assigned treatment arm.} +\item{AGE}{Age in years at baseline.} +\item{SEX}{Sex of patient recorded as character \code{"Male"}/\code{"Female"}.} +\item{SMOKE}{Smoking status at baseline as integer \code{0}/\code{1}.} +\item{ECOG0}{ECOG score at baseline as integer \code{0}/\code{1}.} +\item{N_PR_THER}{Number of prior therapies received as integer \verb{1, 2, 3, 4}.} +\item{SEX_MALE}{Indicator of \code{SEX == "Male"} as numeric \code{1}/\code{0}.} + } } \usage{ diff --git a/man/adtte_sat.Rd b/man/adtte_sat.Rd index 1cd29cae..da452dac 100644 --- a/man/adtte_sat.Rd +++ b/man/adtte_sat.Rd @@ -7,16 +7,16 @@ \format{ A data frame with 500 rows and 10 columns: \describe{ -\item{USUBJID}{} -\item{ARM}{} -\item{EVNT}{} -\item{AVAL}{} -\item{AVALU}{} -\item{PARAMCD}{} -\item{PARAM}{} -\item{CNSR}{} -\item{TIME}{} -\item{EVENT}{} +\item{USUBJID}{Unique subject identifiers for patients.} +\item{ARM}{Assigned treatment arm, \code{"A"}.} +\item{EVNT}{Event indicator \code{0}/\code{1}.} +\item{AVAL}{Analysis value which in this dataset overall survival time in days.} +\item{AVALU}{Unit of \code{AVAL}.} +\item{PARAMCD}{Paramater code of \code{AVAL}, \code{"OS"}.} +\item{PARAM}{Parameter name of \code{AVAL}, \verb{"Overall Survival}.} +\item{CNSR}{Censoring indicator \code{0}/\code{1}.} +\item{TIME}{Survival time in days.} +\item{EVENT}{Event indicator \code{0}/\code{1}.} } } \usage{ diff --git a/man/adtte_twt.Rd b/man/adtte_twt.Rd index c74af8fe..04635cbb 100644 --- a/man/adtte_twt.Rd +++ b/man/adtte_twt.Rd @@ -7,16 +7,16 @@ \format{ A data frame with 1000 rows and 10 columns: \describe{ -\item{USUBJID}{} -\item{ARM}{} -\item{EVNT}{} -\item{AVAL}{} -\item{AVALU}{} -\item{PARAMCD}{} -\item{PARAM}{} -\item{CNSR}{} -\item{TIME}{} -\item{EVENT}{} +\item{USUBJID}{Unique subject identifiers for patients.} +\item{ARM}{Assigned treatment arm, \code{"A"}, \code{"C"}.} +\item{EVNT}{Event indicator \code{0}/\code{1}.} +\item{AVAL}{Analysis value which in this dataset overall survival time in days.} +\item{AVALU}{Unit of \code{AVAL}.} +\item{PARAMCD}{Parameter code of \code{AVAL}, \code{"OS"}.} +\item{PARAM}{Parameter name of \code{AVAL}, \verb{"Overall Survival}.} +\item{CNSR}{Censoring indicator \code{0}/\code{1}.} +\item{TIME}{Survival time in days.} +\item{EVENT}{Event indicator \code{0}/\code{1}.} } } \usage{ diff --git a/man/agd.Rd b/man/agd.Rd index c43cbc5e..7d20ffd7 100644 --- a/man/agd.Rd +++ b/man/agd.Rd @@ -7,15 +7,15 @@ \format{ A data frame with 3 rows and 9 columns: \describe{ -\item{STUDY}{} -\item{ARM}{} -\item{N}{} -\item{AGE_MEAN}{} -\item{AGE_MEDIAN}{} -\item{AGE_SD}{} -\item{SEX_MALE_COUNT}{} -\item{ECOG0_COUNT}{} -\item{SMOKE_COUNT}{} +\item{STUDY}{The study name, Study_XXXX} +\item{ARM}{Study arm name or total} +\item{N}{Number of observations in study arm} +\item{AGE_MEAN}{Mean age in study arm} +\item{AGE_MEDIAN}{Median age in study arm} +\item{AGE_SD}{TODO} +\item{SEX_MALE_COUNT}{Number of male patients} +\item{ECOG0_COUNT}{Number of patients with ECOG score TODO} +\item{SMOKE_COUNT}{Number of smokers} } } \usage{ diff --git a/man/centered_ipd_sat.Rd b/man/centered_ipd_sat.Rd index 64a86316..d708f17e 100644 --- a/man/centered_ipd_sat.Rd +++ b/man/centered_ipd_sat.Rd @@ -7,20 +7,20 @@ \format{ A data frame with 500 rows and 14 columns: \describe{ -\item{USUBJID}{} -\item{ARM}{} -\item{AGE}{} -\item{SEX}{} -\item{SMOKE}{} -\item{ECOG0}{} -\item{N_PR_THER}{} -\item{SEX_MALE}{} -\item{AGE_CENTERED}{} -\item{AGE_MEDIAN_CENTERED}{} -\item{AGE_SQUARED_CENTERED}{} -\item{SEX_MALE_CENTERED}{} -\item{ECOG0_CENTERED}{} -\item{SMOKE_CENTERED}{} +\item{USUBJID}{Unique subject identifiers for patients.} +\item{ARM}{Assigned treatment arm.} +\item{AGE}{Age in years at baseline.} +\item{SEX}{Sex of patient recorded as character \code{"Male"}/\code{"Female"}.} +\item{SMOKE}{Smoking status at baseline as integer \code{0}/\code{1}.} +\item{ECOG0}{ECOG score at baseline as integer \code{0}/\code{1}.} +\item{N_PR_THER}{Number of prior therapies received as integer \verb{1, 2, 3, 4}.} +\item{SEX_MALE}{Indicator of \code{SEX == "Male"} as numeric \code{1}/\code{0}.} +\item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data \link{agd}.} +\item{AGE_MEDIAN_CENTERED}{Age greater/less than median age in \link{agd} coded as TODO .} +\item{AGE_SQUARED_CENTERED}{TODO} +\item{SEX_MALE_CENTERED}{TODO} +\item{ECOG0_CENTERED}{TODO} +\item{SMOKE_CENTERED}{TODO} } } \usage{ diff --git a/man/centered_ipd_twt.Rd b/man/centered_ipd_twt.Rd index 8dc2fbdc..34529bb4 100644 --- a/man/centered_ipd_twt.Rd +++ b/man/centered_ipd_twt.Rd @@ -7,20 +7,20 @@ \format{ A data frame with 1000 rows and 14 columns: \describe{ -\item{USUBJID}{} -\item{ARM}{} -\item{AGE}{} -\item{SEX}{} -\item{SMOKE}{} -\item{ECOG0}{} -\item{N_PR_THER}{} -\item{SEX_MALE}{} -\item{AGE_CENTERED}{} -\item{AGE_MEDIAN_CENTERED}{} -\item{AGE_SQUARED_CENTERED}{} -\item{SEX_MALE_CENTERED}{} -\item{ECOG0_CENTERED}{} -\item{SMOKE_CENTERED}{} +\item{USUBJID}{Unique subject identifiers for patients.} +\item{ARM}{Assigned treatment arm.} +\item{AGE}{Age in years at baseline.} +\item{SEX}{Sex of patient recorded as character \code{"Male"}/\code{"Female"}.} +\item{SMOKE}{Smoking status at baseline as integer \code{0}/\code{1}.} +\item{ECOG0}{ECOG score at baseline as integer \code{0}/\code{1}.} +\item{N_PR_THER}{Number of prior therapies received as integer \verb{1, 2, 3, 4}.} +\item{SEX_MALE}{Indicator of \code{SEX == "Male"} as numeric \code{1}/\code{0}.} +\item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data \link{agd}.} +\item{AGE_MEDIAN_CENTERED}{Age greater/less than median age in \link{agd} coded as TODO .} +\item{AGE_SQUARED_CENTERED}{TODO} +\item{SEX_MALE_CENTERED}{TODO} +\item{ECOG0_CENTERED}{TODO} +\item{SMOKE_CENTERED}{TODO} } } \usage{ diff --git a/man/pseudo_ipd_sat.Rd b/man/pseudo_ipd_sat.Rd index f0a075f7..cf5dcdb5 100644 --- a/man/pseudo_ipd_sat.Rd +++ b/man/pseudo_ipd_sat.Rd @@ -7,9 +7,9 @@ \format{ A data frame with 300 rows and 3 columns: \describe{ -\item{Time}{} -\item{Event}{} -\item{ARM}{} +\item{Time}{Survival time in days.} +\item{Event}{Event indicator \code{0}/\code{1}.} +\item{ARM}{Assigned treatment arm, \code{"B"}.} } } \usage{ diff --git a/man/pseudo_ipd_twt.Rd b/man/pseudo_ipd_twt.Rd index d29e21b7..15a2be3e 100644 --- a/man/pseudo_ipd_twt.Rd +++ b/man/pseudo_ipd_twt.Rd @@ -7,9 +7,9 @@ \format{ A data frame with 800 rows and 3 columns: \describe{ -\item{Time}{} -\item{Event}{} -\item{ARM}{} +\item{Time}{Survival time in days.} +\item{Event}{Event indicator \code{0}/\code{1}.} +\item{ARM}{Assigned treatment arm, \code{"B"}, \code{"C"}.} } } \usage{ From 3030010ca01f138d7ffde03fb4c78da4d7be56b1 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Thu, 20 Jun 2024 18:07:29 +0200 Subject: [PATCH 10/18] improve examples --- NAMESPACE | 1 + R/data.R | 24 +++++++++++++++----- R/matching.R | 38 +++++++++++++++++--------------- R/process_data.R | 10 ++++----- data-raw/dummy_unanchored.R | 10 +++++++-- data/agd.rda | Bin 273 -> 312 bytes data/weighted_sat.rda | Bin 0 -> 9483 bytes man/adrs_sat.Rd | 13 ++++++----- man/adsl_sat.Rd | 3 ++- man/adtte_sat.Rd | 3 ++- man/agd.Rd | 3 ++- man/calculate_weights_legend.Rd | 6 ++--- man/center_ipd.Rd | 6 ++--- man/centered_ipd_sat.Rd | 3 ++- man/check_weights.Rd | 4 +--- man/dummize_ipd.Rd | 4 ++-- man/estimate_weights.Rd | 27 ++++++++++++++--------- man/pseudo_ipd_sat.Rd | 3 ++- man/weighted_sat.Rd | 34 ++++++++++++++++++++++++++++ 19 files changed, 127 insertions(+), 65 deletions(-) create mode 100644 data/weighted_sat.rda create mode 100644 man/weighted_sat.Rd diff --git a/NAMESPACE b/NAMESPACE index 081263e9..5933373f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,6 +7,7 @@ export(basic_kmplot) export(basic_kmplot2) export(bootstrap_HR) export(bucher) +export(calculate_weights_legend) export(center_ipd) export(check_weights) export(dummize_ipd) diff --git a/R/data.R b/R/data.R index da7d9312..c2f0a8e4 100644 --- a/R/data.R +++ b/R/data.R @@ -73,17 +73,29 @@ #' Binary outcome data from single arm trial #' @format A data frame with 500 rows and 5 columns: #' \describe{ -#' \item{USUBJID}{} -#' \item{ARM}{} -#' \item{AVAL}{} -#' \item{PARAM}{} -#' \item{RESPONSE}{} +#' \item{USUBJID}{Unique subject identifiers for patients.} +#' \item{ARM}{Assigned treatment arm.} +#' \item{AVAL}{Analysis value, in this dataset an indicator of response.} +#' \item{PARAM}{Parameter type of `AVAL`.} +#' \item{RESPONSE}{Indicator of response.} #' } #' @family unanchored datasets #' @keywords dataset "adrs_sat" - +#' Weighted object for single arm trial data +#' @format A `maicplus_estimate_weights` object created by [estimate_weights()] containing +#' \describe{ +#' \item{data}{patient level data with weights} +#' \item{centered_colnames}{Columns used in MAIC} +#' \item{nr_missing}{Number of observations with missing data} +#' \item{ess}{Expected sample size} +#' \item{opt}{Information from `optim` from weight calculation} +#' \item{boot}{Parameters and bootstrap sample weights, `NULL` in this object} +#' } +#' @family unanchored datasets +#' @keywords dataset +"weighted_sat" # aggregate data ------ diff --git a/R/matching.R b/R/matching.R index ced085f4..648b9320 100644 --- a/R/matching.R +++ b/R/matching.R @@ -37,14 +37,19 @@ #' } #' #' @examples -#' load(system.file("extdata", "ipd.rda", package = "maicplus", mustWork = TRUE)) -#' load(system.file("extdata", "agd.rda", package = "maicplus", mustWork = TRUE)) -#' ipd_centered <- center_ipd(ipd = ipd, agd = agd) -#' -#' centered_colnames <- c("AGE", "AGE_SQUARED", "SEX_MALE", "ECOG0", "SMOKE", "N_PR_THER_MEDIAN") -#' centered_colnames <- paste0(centered_colnames, "_CENTERED") +#' data(agd) +#' data(adsl_sat) +#' ipd_centered <- center_ipd(ipd = adsl_sat, agd = process_agd(agd)) +#' centered_colnames <- grep("_CENTERED", colnames(ipd_centered), value = TRUE) +#' centered_colnames #' weighted_data <- estimate_weights(data = ipd_centered, centered_colnames = centered_colnames) -#' +#' \donttest{ +#' # To later estimate bootstrap confidence intervals, we calculate the weights +#' # for the bootstrap samples: +#' weighted_data_boot <- estimate_weights( +#' data = ipd_centered, centered_colnames = centered_colnames, n_boot_iteration = 500 +#' ) +#' } #' @export estimate_weights <- function(data, @@ -198,10 +203,9 @@ optimise_weights <- function(matrix, #' #' @return list of ESS, ESS reduction, median value of scaled and unscaled weights, and missing count #' @examples -#' \dontrun{ -#' load(system.file("extdata", "weighted_data.rda", package = "maicplus", mustWork = TRUE)) -#' calculate_weights_legend(weighted_data) -#' } +#' data("weighted_sat") +#' calculate_weights_legend(weighted_sat) +#' @export #' @keywords internal calculate_weights_legend <- function(weighted_data) { @@ -361,11 +365,11 @@ plot_weights_ggplot <- function(weighted_data, bin_col, vline_col, #' @param bins (`ggplot` only) number of bin parameter to use #' #' @examples -#' load(system.file("extdata", "weighted_data.rda", package = "maicplus", mustWork = TRUE)) -#' plot(weighted_data) +#' plot(weighted_sat) #' -#' library(ggplot2) -#' plot(weighted_data, ggplot = TRUE) +#' if (requireNamespace("ggplot2")) { +#' plot(weighted_sat, ggplot = TRUE) +#' } #' @describeIn estimate_weights Plot method for estimate_weights objects #' @export @@ -396,9 +400,7 @@ plot.maicplus_estimate_weights <- function(x, ggplot = FALSE, #' aggregated data following the same naming convention #' #' @examples -#' load(system.file("extdata", "weighted_data.rda", package = "maicplus", mustWork = TRUE)) -#' load(system.file("extdata", "agd.rda", package = "maicplus", mustWork = TRUE)) -#' check_weights(weighted_data, agd) +#' check_weights(weighted_sat, process_agd(agd)) #' #' @import DescTools #' diff --git a/R/process_data.R b/R/process_data.R index b11dfade..d125835b 100644 --- a/R/process_data.R +++ b/R/process_data.R @@ -114,8 +114,8 @@ process_agd <- function(raw_agd) { #' @param dummize_ref_level vector of reference level of the variables to binarize #' #' @examples -#' adsl <- read.csv(system.file("extdata", "adsl.csv", package = "maicplus", mustWork = TRUE)) -#' adsl <- dummize_ipd(adsl, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) +#' data(adsl_twt) +#' dummize_ipd(adsl_twt, dummize_cols = c("SEX"), dummize_ref_level = c("Male")) #' #' @return ipd with dummized columns #' @export @@ -152,8 +152,8 @@ dummize_ipd <- function(raw_ipd, dummize_cols, dummize_ref_level) { #' suffix is no longer accepted. #' @examples #' # load in IPD -#' adsl <- read.csv(system.file("extdata", "adsl.csv", package = "maicplus", mustWork = TRUE)) -#' adsl <- dummize_ipd(adsl, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) +#' data(adsl_sat) +#' adsl <- dummize_ipd(adsl_sat, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) #' #' # Reading aggregate data by Excel #' target_pop <- read.csv( @@ -162,7 +162,7 @@ dummize_ipd <- function(raw_ipd, dummize_cols, dummize_ref_level) { #' agd <- process_agd(target_pop) #' #' # Alternatively, you can specify aggregate data manually in data frame -#' load(system.file("extdata", "agd.rda", package = "maicplus", mustWork = TRUE)) +#' data(agd) #' ipd_centered <- center_ipd(ipd = adsl, agd = agd) #' #' @return centered ipd using aggregate level data averages diff --git a/data-raw/dummy_unanchored.R b/data-raw/dummy_unanchored.R index 0d3bd747..fdb3d8de 100644 --- a/data-raw/dummy_unanchored.R +++ b/data-raw/dummy_unanchored.R @@ -30,7 +30,7 @@ pseudo_ipd_sat <- read.csv(system.file("extdata", "psuedo_IPD.csv", pseudo_ipd_sat$ARM <- "B" ### Centered IPD -agd <- process_agd(agd) +agd_sat <- process_agd(agd) adsl_sat <- dummize_ipd(adsl_sat, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) centered_ipd_sat <- center_ipd(ipd = adsl_sat, agd = agd_sat) @@ -38,7 +38,13 @@ centered_ipd_sat <- center_ipd(ipd = adsl_sat, agd = agd_sat) adrs_sat <- read.csv(system.file("extdata", "adrs.csv", package = "maicplus", mustWork = TRUE)) adrs_sat$RESPONSE <- adrs_sat$AVAL +## Example weighted TTE +ipd_centered <- center_ipd(ipd = adsl_sat, agd = agd_sat) +centered_colnames <- paste0(c("AGE", "AGE_MEDIAN", "AGE_SQUARED", "SEX_MALE", "ECOG0", "SMOKE"), "_CENTERED") +weighted_sat <- estimate_weights(data = ipd_centered, centered_colnames = centered_colnames) + + ### Output -usethis::use_data(adsl_sat, adtte_sat, agd, pseudo_ipd_sat, centered_ipd_sat, adrs_sat, +usethis::use_data(adsl_sat, adtte_sat, agd, pseudo_ipd_sat, centered_ipd_sat, adrs_sat, weighted_sat, internal = FALSE, overwrite = TRUE ) diff --git a/data/agd.rda b/data/agd.rda index 6c669c8041d6c0482c90a2497ed0d38b69e40ebf..ba6c9dd4287d28b7c16616a70dd5058d8f808ab3 100644 GIT binary patch literal 312 zcmV-80muGAT4*^jL0KkKS=M+x4gdh(|M36+NB{r@co1%{o?x%1-=M$%2mlZOKm)J< z?10HNGD+bwWi-*FL6FnZ2dK&A4F{TtIfTF_08AzmOaK5TO*9N7lqmE7000000005v z;ABy$z)-kaz;P1*p`tV)p($$tA1~Uf<}wgP6MOjY_?~12#!?2)wZwr+WP>KD(V;kI z8M(eZ^dpu(Vs80)RcX?2Tb zxI59l)=q7(<*imcCxLP#rrA*T!4Hh}(sUUYJjax}h654eR2v{+dAllkX%}~RK|kEr zo1Ys7-AhwHP`oxewdZ_Uu}c%=*%0?d4dV>zF_@c>{AJ8OieNX!f1LxY@zy4Xp>C>dLRJM004TK0006}LOnx313&{nG5`Po z9?1X+ZDvLm0^Bh3$OQ_J3x!G&CJhx|OQI0Z&45iPn$;Td17ZR?sgq1sRUj2uG+|&y zR7$`KAcBV1n;dbW0Wer-FQ^uk22H0YXIL2_VgvUddKhJ!4U#F-ZDV5*wS^iG{G{ts zjz|qu92{?0m_s*R8$m9*S3;^OhK!FB&0R0x0mR8OJqJi X*{~z?qM;&`aQ-gjig2MJVU+Q%g12bg diff --git a/data/weighted_sat.rda b/data/weighted_sat.rda new file mode 100644 index 0000000000000000000000000000000000000000..5ac0a3e702715b561f0c5ef8e72a71705e9d6986 GIT binary patch literal 9483 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 literal 0 HcmV?d00001 diff --git a/man/adrs_sat.Rd b/man/adrs_sat.Rd index 4a109eef..e015731f 100644 --- a/man/adrs_sat.Rd +++ b/man/adrs_sat.Rd @@ -7,11 +7,11 @@ \format{ A data frame with 500 rows and 5 columns: \describe{ -\item{USUBJID}{} -\item{ARM}{} -\item{AVAL}{} -\item{PARAM}{} -\item{RESPONSE}{} +\item{USUBJID}{Unique subject identifiers for patients.} +\item{ARM}{Assigned treatment arm.} +\item{AVAL}{Analysis value, in this dataset an indicator of response.} +\item{PARAM}{Parameter type of \code{AVAL}.} +\item{RESPONSE}{Indicator of response.} } } \usage{ @@ -26,7 +26,8 @@ Other unanchored datasets: \code{\link{adtte_sat}}, \code{\link{agd}}, \code{\link{centered_ipd_sat}}, -\code{\link{pseudo_ipd_sat}} +\code{\link{pseudo_ipd_sat}}, +\code{\link{weighted_sat}} } \concept{unanchored datasets} \keyword{dataset} diff --git a/man/adsl_sat.Rd b/man/adsl_sat.Rd index 181465f1..cf35eef8 100644 --- a/man/adsl_sat.Rd +++ b/man/adsl_sat.Rd @@ -30,7 +30,8 @@ Other unanchored datasets: \code{\link{adtte_sat}}, \code{\link{agd}}, \code{\link{centered_ipd_sat}}, -\code{\link{pseudo_ipd_sat}} +\code{\link{pseudo_ipd_sat}}, +\code{\link{weighted_sat}} } \concept{unanchored datasets} \keyword{dataset} diff --git a/man/adtte_sat.Rd b/man/adtte_sat.Rd index da452dac..06c58bb9 100644 --- a/man/adtte_sat.Rd +++ b/man/adtte_sat.Rd @@ -31,7 +31,8 @@ Other unanchored datasets: \code{\link{adsl_sat}}, \code{\link{agd}}, \code{\link{centered_ipd_sat}}, -\code{\link{pseudo_ipd_sat}} +\code{\link{pseudo_ipd_sat}}, +\code{\link{weighted_sat}} } \concept{unanchored datasets} \keyword{dataset} diff --git a/man/agd.Rd b/man/agd.Rd index 7d20ffd7..f7245d32 100644 --- a/man/agd.Rd +++ b/man/agd.Rd @@ -30,7 +30,8 @@ Other unanchored datasets: \code{\link{adsl_sat}}, \code{\link{adtte_sat}}, \code{\link{centered_ipd_sat}}, -\code{\link{pseudo_ipd_sat}} +\code{\link{pseudo_ipd_sat}}, +\code{\link{weighted_sat}} Other anchored datasets: \code{\link{adsl_twt}}, diff --git a/man/calculate_weights_legend.Rd b/man/calculate_weights_legend.Rd index d9078b88..617c206c 100644 --- a/man/calculate_weights_legend.Rd +++ b/man/calculate_weights_legend.Rd @@ -16,9 +16,7 @@ list of ESS, ESS reduction, median value of scaled and unscaled weights, and mis Calculates ESS reduction and median weights which is used to create legend for weights plot } \examples{ -\dontrun{ -load(system.file("extdata", "weighted_data.rda", package = "maicplus", mustWork = TRUE)) -calculate_weights_legend(weighted_data) -} +data("weighted_sat") +calculate_weights_legend(weighted_sat) } \keyword{internal} diff --git a/man/center_ipd.Rd b/man/center_ipd.Rd index beba52d8..57d6ad7f 100644 --- a/man/center_ipd.Rd +++ b/man/center_ipd.Rd @@ -27,8 +27,8 @@ IPD and aggregate data variable names should match. } \examples{ # load in IPD -adsl <- read.csv(system.file("extdata", "adsl.csv", package = "maicplus", mustWork = TRUE)) -adsl <- dummize_ipd(adsl, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) +data(adsl_sat) +adsl <- dummize_ipd(adsl_sat, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) # Reading aggregate data by Excel target_pop <- read.csv( @@ -37,7 +37,7 @@ target_pop <- read.csv( agd <- process_agd(target_pop) # Alternatively, you can specify aggregate data manually in data frame -load(system.file("extdata", "agd.rda", package = "maicplus", mustWork = TRUE)) +data(agd) ipd_centered <- center_ipd(ipd = adsl, agd = agd) } diff --git a/man/centered_ipd_sat.Rd b/man/centered_ipd_sat.Rd index d708f17e..b3b5b951 100644 --- a/man/centered_ipd_sat.Rd +++ b/man/centered_ipd_sat.Rd @@ -35,7 +35,8 @@ Other unanchored datasets: \code{\link{adsl_sat}}, \code{\link{adtte_sat}}, \code{\link{agd}}, -\code{\link{pseudo_ipd_sat}} +\code{\link{pseudo_ipd_sat}}, +\code{\link{weighted_sat}} } \concept{unanchored datasets} \keyword{dataset} diff --git a/man/check_weights.Rd b/man/check_weights.Rd index bb25ff46..992a41b2 100644 --- a/man/check_weights.Rd +++ b/man/check_weights.Rd @@ -48,8 +48,6 @@ before and after adjustment. }} \examples{ -load(system.file("extdata", "weighted_data.rda", package = "maicplus", mustWork = TRUE)) -load(system.file("extdata", "agd.rda", package = "maicplus", mustWork = TRUE)) -check_weights(weighted_data, agd) +check_weights(weighted_sat, process_agd(agd)) } diff --git a/man/dummize_ipd.Rd b/man/dummize_ipd.Rd index b9471b16..f44fea9d 100644 --- a/man/dummize_ipd.Rd +++ b/man/dummize_ipd.Rd @@ -22,7 +22,7 @@ This would be especially useful if the variable has more than two factors. Note that the original variable is kept after a variable is dummized. } \examples{ -adsl <- read.csv(system.file("extdata", "adsl.csv", package = "maicplus", mustWork = TRUE)) -adsl <- dummize_ipd(adsl, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) +data(adsl_twt) +dummize_ipd(adsl_twt, dummize_cols = c("SEX"), dummize_ref_level = c("Male")) } diff --git a/man/estimate_weights.Rd b/man/estimate_weights.Rd index 23011211..73535f68 100644 --- a/man/estimate_weights.Rd +++ b/man/estimate_weights.Rd @@ -93,17 +93,22 @@ for \code{ggplot} is to plot unscaled and scaled weights on a same plot. }} \examples{ -load(system.file("extdata", "ipd.rda", package = "maicplus", mustWork = TRUE)) -load(system.file("extdata", "agd.rda", package = "maicplus", mustWork = TRUE)) -ipd_centered <- center_ipd(ipd = ipd, agd = agd) - -centered_colnames <- c("AGE", "AGE_SQUARED", "SEX_MALE", "ECOG0", "SMOKE", "N_PR_THER_MEDIAN") -centered_colnames <- paste0(centered_colnames, "_CENTERED") +data(agd) +data(adsl_sat) +ipd_centered <- center_ipd(ipd = adsl_sat, agd = process_agd(agd)) +centered_colnames <- grep("_CENTERED", colnames(ipd_centered), value = TRUE) +centered_colnames weighted_data <- estimate_weights(data = ipd_centered, centered_colnames = centered_colnames) +\donttest{ +# To later estimate bootstrap confidence intervals, we calculate the weights +# for the bootstrap samples: +weighted_data_boot <- estimate_weights( + data = ipd_centered, centered_colnames = centered_colnames, n_boot_iteration = 500 +) +} +plot(weighted_sat) -load(system.file("extdata", "weighted_data.rda", package = "maicplus", mustWork = TRUE)) -plot(weighted_data) - -library(ggplot2) -plot(weighted_data, ggplot = TRUE) +if (requireNamespace("ggplot2")) { + plot(weighted_sat, ggplot = TRUE) +} } diff --git a/man/pseudo_ipd_sat.Rd b/man/pseudo_ipd_sat.Rd index cf5dcdb5..d226548e 100644 --- a/man/pseudo_ipd_sat.Rd +++ b/man/pseudo_ipd_sat.Rd @@ -24,7 +24,8 @@ Other unanchored datasets: \code{\link{adsl_sat}}, \code{\link{adtte_sat}}, \code{\link{agd}}, -\code{\link{centered_ipd_sat}} +\code{\link{centered_ipd_sat}}, +\code{\link{weighted_sat}} } \concept{unanchored datasets} \keyword{dataset} diff --git a/man/weighted_sat.Rd b/man/weighted_sat.Rd new file mode 100644 index 00000000..2e244022 --- /dev/null +++ b/man/weighted_sat.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{weighted_sat} +\alias{weighted_sat} +\title{Weighted object for single arm trial data} +\format{ +A \code{maicplus_estimate_weights} object created by \code{\link[=estimate_weights]{estimate_weights()}} containing +\describe{ +\item{data}{patient level data with weights} +\item{centered_colnames}{Columns used in MAIC} +\item{nr_missing}{Number of observations with missing data} +\item{ess}{Expected sample size} +\item{opt}{Information from \code{optim} from weight calculation} +\item{boot}{Parameters and bootstrap sample weights, \code{NULL} in this object} +} +} +\usage{ +weighted_sat +} +\description{ +Weighted object for single arm trial data +} +\seealso{ +Other unanchored datasets: +\code{\link{adrs_sat}}, +\code{\link{adsl_sat}}, +\code{\link{adtte_sat}}, +\code{\link{agd}}, +\code{\link{centered_ipd_sat}}, +\code{\link{pseudo_ipd_sat}} +} +\concept{unanchored datasets} +\keyword{dataset} From a7bbe7d4d4e2aaeb2c39740ac5a561bed38113aa Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Fri, 21 Jun 2024 09:12:16 +0200 Subject: [PATCH 11/18] more descriptions --- R/data.R | 38 +++++++++++++++++++------------------- man/adsl_sat.Rd | 4 ++-- man/adsl_twt.Rd | 6 +++--- man/agd.Rd | 4 ++-- man/centered_ipd_sat.Rd | 12 ++++++------ man/centered_ipd_twt.Rd | 12 ++++++------ 6 files changed, 38 insertions(+), 38 deletions(-) diff --git a/R/data.R b/R/data.R index c2f0a8e4..13576cd9 100644 --- a/R/data.R +++ b/R/data.R @@ -7,8 +7,8 @@ #' \item{ARM}{Assigned treatment arm.} #' \item{AGE}{Age in years at baseline.} #' \item{SEX}{Sex of patient recorded as character `"Male"`/`"Female"`.} -#' \item{SMOKE}{Smoking status at baseline as integer `0`/`1`.} -#' \item{ECOG0}{ECOG score at baseline as integer `0`/`1`.} +#' \item{SMOKE}{Smoking status at baseline as integer `1`/`0`.} +#' \item{ECOG0}{Indicator of ECOG score = 0 at baseline as integer `1`/`0`.} #' \item{N_PR_THER}{Number of prior therapies received as integer `1, 2, 3, 4`.} #' \item{SEX_MALE}{Indicator of `SEX == "Male"` as numeric `1`/`0`.} #' @@ -55,16 +55,16 @@ #' \item{ARM}{Assigned treatment arm.} #' \item{AGE}{Age in years at baseline.} #' \item{SEX}{Sex of patient recorded as character `"Male"`/`"Female"`.} -#' \item{SMOKE}{Smoking status at baseline as integer `0`/`1`.} -#' \item{ECOG0}{ECOG score at baseline as integer `0`/`1`.} +#' \item{SMOKE}{Smoking status at baseline as integer `1`/`0`.} +#' \item{ECOG0}{Indicator of ECOG score = 0 at baseline as integer `1`/`0`.} #' \item{N_PR_THER}{Number of prior therapies received as integer `1, 2, 3, 4`.} #' \item{SEX_MALE}{Indicator of `SEX == "Male"` as numeric `1`/`0`.} #' \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data [agd].} -#' \item{AGE_MEDIAN_CENTERED}{Age greater/less than median age in [agd] coded as TODO .} +#' \item{AGE_MEDIAN_CENTERED}{`AGE` greater/less than `MEDIAN_AGE` in [agd] coded as `1`/`0` and then centered.} #' \item{AGE_SQUARED_CENTERED}{TODO} -#' \item{SEX_MALE_CENTERED}{TODO} -#' \item{ECOG0_CENTERED}{TODO} -#' \item{SMOKE_CENTERED}{TODO} +#' \item{SEX_MALE_CENTERED}{`SEX_MALE` centered by the proportion of male patients in [agd]} +#' \item{ECOG0_CENTERED}{`ECOG0` centered by the proportion of `ECOG0` in [agd]} +#' \item{SMOKE_CENTERED}{`SMOKE` centered by the proportion of `SMOKE` in [agd]} #' } #' @family unanchored datasets #' @keywords dataset @@ -110,9 +110,9 @@ #' \item{N}{Number of observations in study arm} #' \item{AGE_MEAN}{Mean age in study arm} #' \item{AGE_MEDIAN}{Median age in study arm} -#' \item{AGE_SD}{TODO} +#' \item{AGE_SD}{Standard deviation of age in study arm} #' \item{SEX_MALE_COUNT}{Number of male patients} -#' \item{ECOG0_COUNT}{Number of patients with ECOG score TODO} +#' \item{ECOG0_COUNT}{Number of patients with ECOG score = 0} #' \item{SMOKE_COUNT}{Number of smokers} #' } #' @family unanchored datasets @@ -130,9 +130,9 @@ #' \item{ARM}{Assigned treatment arm.} #' \item{AGE}{Age in years at baseline.} #' \item{SEX}{Sex of patient recorded as character "Male"/"Female"} -#' \item{SMOKE}{Smoking status at baseline as integer 0/1} -#' \item{ECOG0}{ECOG score at baseline as integer 0/1} -#' \item{N_PR_THER}{Number of prior therapies received as integer 1, 2, 3, 4} +#' \item{SMOKE}{Smoking status at baseline as integer `1`/`0`.} +#' \item{ECOG0}{Indicator of ECOG score = 0 at baseline as integer `1`/`0`.} +#' \item{N_PR_THER}{Number of prior therapies received as integer `1, 2, 3, 4`.} #' \item{SEX_MALE}{Indicator of SEX == "Male" as numeric 1/0} #' } #' @family anchored datasets @@ -178,16 +178,16 @@ #' \item{ARM}{Assigned treatment arm.} #' \item{AGE}{Age in years at baseline.} #' \item{SEX}{Sex of patient recorded as character `"Male"`/`"Female"`.} -#' \item{SMOKE}{Smoking status at baseline as integer `0`/`1`.} -#' \item{ECOG0}{ECOG score at baseline as integer `0`/`1`.} +#' \item{SMOKE}{Smoking status at baseline as integer `1`/`0`.} +#' \item{ECOG0}{Indicator of ECOG score = 0 at baseline as integer `1`/`0`.} #' \item{N_PR_THER}{Number of prior therapies received as integer `1, 2, 3, 4`.} #' \item{SEX_MALE}{Indicator of `SEX == "Male"` as numeric `1`/`0`.} #' \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data [agd].} -#' \item{AGE_MEDIAN_CENTERED}{Age greater/less than median age in [agd] coded as TODO .} +#' \item{AGE_MEDIAN_CENTERED}{`AGE` greater/less than `MEDIAN_AGE` in [agd] coded as `1`/`0` and then centered.} #' \item{AGE_SQUARED_CENTERED}{TODO} -#' \item{SEX_MALE_CENTERED}{TODO} -#' \item{ECOG0_CENTERED}{TODO} -#' \item{SMOKE_CENTERED}{TODO} +#' \item{SEX_MALE_CENTERED}{`SEX_MALE` centered by the proportion of male patients in [agd]} +#' \item{ECOG0_CENTERED}{`ECOG0` centered by the proportion of `ECOG0` in [agd]} +#' \item{SMOKE_CENTERED}{`SMOKE` centered by the proportion of `SMOKE` in [agd]} #' } #' @keywords dataset #' @family anchored datasets diff --git a/man/adsl_sat.Rd b/man/adsl_sat.Rd index cf35eef8..bf6c48db 100644 --- a/man/adsl_sat.Rd +++ b/man/adsl_sat.Rd @@ -11,8 +11,8 @@ a data frame with 500 rows and 8 columns: \item{ARM}{Assigned treatment arm.} \item{AGE}{Age in years at baseline.} \item{SEX}{Sex of patient recorded as character \code{"Male"}/\code{"Female"}.} -\item{SMOKE}{Smoking status at baseline as integer \code{0}/\code{1}.} -\item{ECOG0}{ECOG score at baseline as integer \code{0}/\code{1}.} +\item{SMOKE}{Smoking status at baseline as integer \code{1}/\code{0}.} +\item{ECOG0}{Indicator of ECOG score = 0 at baseline as integer \code{1}/\code{0}.} \item{N_PR_THER}{Number of prior therapies received as integer \verb{1, 2, 3, 4}.} \item{SEX_MALE}{Indicator of \code{SEX == "Male"} as numeric \code{1}/\code{0}.} diff --git a/man/adsl_twt.Rd b/man/adsl_twt.Rd index 36911a1e..6ef07138 100644 --- a/man/adsl_twt.Rd +++ b/man/adsl_twt.Rd @@ -11,9 +11,9 @@ A data frame with 1000 rows and 8 columns: \item{ARM}{Assigned treatment arm.} \item{AGE}{Age in years at baseline.} \item{SEX}{Sex of patient recorded as character "Male"/"Female"} -\item{SMOKE}{Smoking status at baseline as integer 0/1} -\item{ECOG0}{ECOG score at baseline as integer 0/1} -\item{N_PR_THER}{Number of prior therapies received as integer 1, 2, 3, 4} +\item{SMOKE}{Smoking status at baseline as integer \code{1}/\code{0}.} +\item{ECOG0}{Indicator of ECOG score = 0 at baseline as integer \code{1}/\code{0}.} +\item{N_PR_THER}{Number of prior therapies received as integer \verb{1, 2, 3, 4}.} \item{SEX_MALE}{Indicator of SEX == "Male" as numeric 1/0} } } diff --git a/man/agd.Rd b/man/agd.Rd index f7245d32..5c8c2334 100644 --- a/man/agd.Rd +++ b/man/agd.Rd @@ -12,9 +12,9 @@ A data frame with 3 rows and 9 columns: \item{N}{Number of observations in study arm} \item{AGE_MEAN}{Mean age in study arm} \item{AGE_MEDIAN}{Median age in study arm} -\item{AGE_SD}{TODO} +\item{AGE_SD}{Standard deviation of age in study arm} \item{SEX_MALE_COUNT}{Number of male patients} -\item{ECOG0_COUNT}{Number of patients with ECOG score TODO} +\item{ECOG0_COUNT}{Number of patients with ECOG score = 0} \item{SMOKE_COUNT}{Number of smokers} } } diff --git a/man/centered_ipd_sat.Rd b/man/centered_ipd_sat.Rd index b3b5b951..33709ac8 100644 --- a/man/centered_ipd_sat.Rd +++ b/man/centered_ipd_sat.Rd @@ -11,16 +11,16 @@ A data frame with 500 rows and 14 columns: \item{ARM}{Assigned treatment arm.} \item{AGE}{Age in years at baseline.} \item{SEX}{Sex of patient recorded as character \code{"Male"}/\code{"Female"}.} -\item{SMOKE}{Smoking status at baseline as integer \code{0}/\code{1}.} -\item{ECOG0}{ECOG score at baseline as integer \code{0}/\code{1}.} +\item{SMOKE}{Smoking status at baseline as integer \code{1}/\code{0}.} +\item{ECOG0}{Indicator of ECOG score = 0 at baseline as integer \code{1}/\code{0}.} \item{N_PR_THER}{Number of prior therapies received as integer \verb{1, 2, 3, 4}.} \item{SEX_MALE}{Indicator of \code{SEX == "Male"} as numeric \code{1}/\code{0}.} \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data \link{agd}.} -\item{AGE_MEDIAN_CENTERED}{Age greater/less than median age in \link{agd} coded as TODO .} +\item{AGE_MEDIAN_CENTERED}{\code{AGE} greater/less than \code{MEDIAN_AGE} in \link{agd} coded as \code{1}/\code{0} and then centered.} \item{AGE_SQUARED_CENTERED}{TODO} -\item{SEX_MALE_CENTERED}{TODO} -\item{ECOG0_CENTERED}{TODO} -\item{SMOKE_CENTERED}{TODO} +\item{SEX_MALE_CENTERED}{\code{SEX_MALE} centered by the proportion of male patients in \link{agd}} +\item{ECOG0_CENTERED}{\code{ECOG0} centered by the proportion of \code{ECOG0} in \link{agd}} +\item{SMOKE_CENTERED}{\code{SMOKE} centered by the proportion of \code{SMOKE} in \link{agd}} } } \usage{ diff --git a/man/centered_ipd_twt.Rd b/man/centered_ipd_twt.Rd index 34529bb4..a91b3329 100644 --- a/man/centered_ipd_twt.Rd +++ b/man/centered_ipd_twt.Rd @@ -11,16 +11,16 @@ A data frame with 1000 rows and 14 columns: \item{ARM}{Assigned treatment arm.} \item{AGE}{Age in years at baseline.} \item{SEX}{Sex of patient recorded as character \code{"Male"}/\code{"Female"}.} -\item{SMOKE}{Smoking status at baseline as integer \code{0}/\code{1}.} -\item{ECOG0}{ECOG score at baseline as integer \code{0}/\code{1}.} +\item{SMOKE}{Smoking status at baseline as integer \code{1}/\code{0}.} +\item{ECOG0}{Indicator of ECOG score = 0 at baseline as integer \code{1}/\code{0}.} \item{N_PR_THER}{Number of prior therapies received as integer \verb{1, 2, 3, 4}.} \item{SEX_MALE}{Indicator of \code{SEX == "Male"} as numeric \code{1}/\code{0}.} \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data \link{agd}.} -\item{AGE_MEDIAN_CENTERED}{Age greater/less than median age in \link{agd} coded as TODO .} +\item{AGE_MEDIAN_CENTERED}{\code{AGE} greater/less than \code{MEDIAN_AGE} in \link{agd} coded as \code{1}/\code{0} and then centered.} \item{AGE_SQUARED_CENTERED}{TODO} -\item{SEX_MALE_CENTERED}{TODO} -\item{ECOG0_CENTERED}{TODO} -\item{SMOKE_CENTERED}{TODO} +\item{SEX_MALE_CENTERED}{\code{SEX_MALE} centered by the proportion of male patients in \link{agd}} +\item{ECOG0_CENTERED}{\code{ECOG0} centered by the proportion of \code{ECOG0} in \link{agd}} +\item{SMOKE_CENTERED}{\code{SMOKE} centered by the proportion of \code{SMOKE} in \link{agd}} } } \usage{ From 99d41140798e17e0f3d110913ac784cbdfe2df40 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Fri, 21 Jun 2024 10:18:07 +0200 Subject: [PATCH 12/18] update data and docs --- R/data.R | 16 ++++++++++++++-- data-raw/dummy_anchored.R | 16 ++++++++++++++-- data/adrs_twt.rda | Bin 0 -> 1533 bytes data/adsl_twt.rda | Bin 5052 -> 5073 bytes data/adtte_twt.rda | Bin 11558 -> 11463 bytes data/centered_ipd_twt.rda | Bin 7889 -> 7913 bytes data/pseudo_ipd_twt.rda | Bin 7013 -> 6994 bytes man/adrs_twt.Rd | 23 +++++++++++++++++++++++ man/centered_ipd_sat.Rd | 3 ++- man/centered_ipd_twt.Rd | 3 ++- 10 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 data/adrs_twt.rda create mode 100644 man/adrs_twt.Rd diff --git a/R/data.R b/R/data.R index 13576cd9..a6e04bce 100644 --- a/R/data.R +++ b/R/data.R @@ -60,7 +60,8 @@ #' \item{N_PR_THER}{Number of prior therapies received as integer `1, 2, 3, 4`.} #' \item{SEX_MALE}{Indicator of `SEX == "Male"` as numeric `1`/`0`.} #' \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data [agd].} -#' \item{AGE_MEDIAN_CENTERED}{`AGE` greater/less than `MEDIAN_AGE` in [agd] coded as `1`/`0` and then centered.} +#' \item{AGE_MEDIAN_CENTERED}{`AGE` greater/less than `MEDIAN_AGE` in [agd] coded as `1`/`0` and then centered at +#' 0.5.} #' \item{AGE_SQUARED_CENTERED}{TODO} #' \item{SEX_MALE_CENTERED}{`SEX_MALE` centered by the proportion of male patients in [agd]} #' \item{ECOG0_CENTERED}{`ECOG0` centered by the proportion of `ECOG0` in [agd]} @@ -158,6 +159,16 @@ #' @keywords dataset "adtte_twt" +#' Binary outcome data from two arm trial +#' @format A data frame with 1000 rows and 5 columns: +#' \describe{ +#' \item{USUBJID}{Unique subject identifiers for patients.} +#' \item{ARM}{Assigned treatment arm, `"A"`, `"C"`.} +#' \item{AVAL}{Analysis value, in this dataset an indicator of response.} +#' \item{PARAM}{Parameter type of `AVAL`.} +#' \item{RESPONSE}{Indicator of response.} +#' } +"adrs_twt" #' Pseudo individual patient survival data from published two arm study #' @format A data frame with 800 rows and 3 columns: @@ -183,7 +194,8 @@ #' \item{N_PR_THER}{Number of prior therapies received as integer `1, 2, 3, 4`.} #' \item{SEX_MALE}{Indicator of `SEX == "Male"` as numeric `1`/`0`.} #' \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data [agd].} -#' \item{AGE_MEDIAN_CENTERED}{`AGE` greater/less than `MEDIAN_AGE` in [agd] coded as `1`/`0` and then centered.} +#' \item{AGE_MEDIAN_CENTERED}{`AGE` greater/less than `MEDIAN_AGE` in [agd] coded as `1`/`0` and then centered at +#' 0.5.} #' \item{AGE_SQUARED_CENTERED}{TODO} #' \item{SEX_MALE_CENTERED}{`SEX_MALE` centered by the proportion of male patients in [agd]} #' \item{ECOG0_CENTERED}{`ECOG0` centered by the proportion of `ECOG0` in [agd]} diff --git a/data-raw/dummy_anchored.R b/data-raw/dummy_anchored.R index d75c3a2d..a33d729f 100644 --- a/data-raw/dummy_anchored.R +++ b/data-raw/dummy_anchored.R @@ -12,7 +12,7 @@ adsl <- read.csv(system.file("extdata", "adsl.csv", adsl$X <- NULL adsl$USUBJID <- paste0("xx", adsl$USUBJID) adsl2 <- adsl -adtte2$ARM <- "C" +adsl2$ARM <- "C" adsl2$USUBJID <- sample(size = nrow(adsl2), paste0("yy", adsl2$USUBJID), replace = FALSE) adsl2 <- adsl2[order(adsl2$USUBJID), ] @@ -38,6 +38,18 @@ adtte2$USUBJID <- paste0("yy", adtte2$USUBJID) adtte_twt <- rbind(adtte, adtte2) +### Binary +adrs_twt1 <- read.csv(system.file("extdata", "adrs.csv", package = "maicplus", mustWork = TRUE)) +adrs_twt1$USUBJID <- paste0("xx", adrs_twt1$USUBJID) +adrs_twt1$RESPONSE <- adrs_twt1$AVAL + +adrs_twt2 <- read.csv(system.file("extdata", "adrs.csv", package = "maicplus", mustWork = TRUE)) +adrs_twt2$ARM <- "C" +adrs_twt2$AVAL <- adrs_twt2$RESPONSE <- rbinom(nrow(adrs_twt2), size = 1, prob = 0.68) +adrs_twt2$USUBJID <- paste0("yy", adrs_twt2$USUBJID) + +adrs_twt <- rbind(adrs_twt1, adrs_twt2) + # Make sure that agd is up-to-date! data("agd") @@ -62,6 +74,6 @@ centered_ipd_twt <- center_ipd(ipd = adsl_twt, agd = agd) ### Output -usethis::use_data(adsl_twt, adtte_twt, pseudo_ipd_twt, centered_ipd_twt, +usethis::use_data(adsl_twt, adtte_twt, pseudo_ipd_twt, centered_ipd_twt, adrs_twt, internal = FALSE, overwrite = TRUE ) diff --git a/data/adrs_twt.rda b/data/adrs_twt.rda new file mode 100644 index 0000000000000000000000000000000000000000..b202158bf92f53222d69b27c1237c43cdec41439 GIT binary patch literal 1533 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 literal 5052 zcmbtX3p|tW+n*4LkP`h+NzTV13FTCwA~XzB$tJWd$Hh9J1LaW2Vdhj3jZMfFb1H`w zvz5cdY>J$jkW=dCzm@#n_x-&8_w#<<_xjv>uKRO6*L^?N^}W9L_3W{9zhtau0akVf zm-?=S0Q~Q*MXjxV%*ep5afN-RR4D5cz}%egyy8&+01ycfJil3jKTj-@PnV6lB2f2` zU)o&sB0w)5(0H}XyZP=x87f*e*PQDL;M>vE)YJgT#5e)ozxR zr#d)xYz_lI8P1qTBYLFJf8m>nGsqpMKj5|40}dLRZ9S>btMsjHC_2#u%xceO^-aQA zh^kH^5`jf5L27%%syV&P{%JpQv3n(>uh*Y!gnEj0H8EteJ`g6!sGzWUI4f=G;Pmt) z>e)hX4eQHCQWXlN?~Ldq;SJc+nGDY2cxU`@4`R8bLPxz#lP(_)ThV5@1AsJVb zVjxTeXOY81g^~=iE{3sKH9zKotyJ}r)>LSmhK5;AEuowmU#ufiJlvcLUio`<2EBG` zZtX`m0*@=@`D+2x)ub8+>p_ywD*og?E)F-`K+;2(YcY!46T@XFjPa2IE@)|;Et zL`;phxLz%SB1j*cXByOINSZzVA$voMKg?;nHns*6fe*Yp&$?=a&8ZxFh5I?5?5jnQ zI1s-nQA8JwNKJCOO9e+u-Z(|A6l|J60{q&ols}zndlN%C;L~t-TiBy89UJ8)r&OSp z?#tp--;9SwF6~pSLBAKP&PAtmi;`pw0BXz z@e6QTeyb6ovCa z0U2)I#m-f62g*K!)yiCwG?u8SG2h#XxHs z#UV{@`wAWVHhs4FD&=@@16w*);zE*5bpF-HPR_}oGO(b+ovCYpm9RMzH*7E{Xu3ku zOZw4;IIKEu-(mHTWTWm=lgAy@N7LU2?krh}de!%69AXoq>o(ifSy#$oYG?rKpwKkm z#&ezL(u;xA`6bd9DD+w6?n|3yBSPjbHeKiTDKP_a5%}i?=%-_3>%(fj)vcKDv%$R<>bN|9=6Qa6 zB?zJsfg2=*y7*UsXt+WAL~#Ken3;AgHr()h^wj z&@vDR@c+HPYkIcs;}Yh_DQbm2uuil>vqE1Q28L^>#cA>rB3E-mN(m1frbxT@B*dOP z9;X=p-1<<@+7Ya<9)9{H##B=beHNu73L$&y?0W!~Omv*iq=CaAY% zS_3*jX9V3v)1}mOXxC({h0k5FA@6-Kv)Rib_c$hb=R110_mIY@~DrJ2dBjZ&aRk zsVO@8=ywYFBFo1i)dg=#pIp^Dbi76J-fcp%~D&=OB##PYq36Edvbm z+6jZXIHsn7Q*)tE%uV$YYE3T~yn5vNY@1va`p~ih-M8X1+KhglN2;xI*o$cgTRsjG z`*{Sv_?u{=zQ%0{k%zI7W5!VpKC-Ky=?P`=qsA@4Su@1&*E?tm6P51di?zEfT;Q~= z9}j*sj7#E#x(zF3zEes8D<#`1S1MO>mC`$9TdsPp?8BXB`D9YLDzhuIi^G*sWB{2f z)vQSrPbba{lu$!PIq;n9!{4R}tVnJk{HSnH2qLNQT~wNpaZAUY%LjoYF&@oXt!t@I zX6oz_Z2Kj9FGrV^4^Nw}DhMB+_uH^F|wmJ38C1pFgE8awPiZCPi>{UG`)#y>lj#rDl zCG9P}%?8h9-WqGxrsJl(GD%qnOJnEG)Q-r}4x|fwQX69uVrzy~3RL~R(yUGx#sm?^ z=CiN#h#%g)5-;t4XE3vZ}qGI1%;-;m<@t-65+@b00+LqqN@m3hhy@~0a@WjN47SI9kHu%ESLhm&e z){y(;E!+$RlS@s$rH-W+l})~$e5vFuG92i|fJjUfai-i}Znse4 zB@n@?Wx}iAwZ2B{n+QmpKyh;#@j$BpHzG@{TQ~hTUix$+So<$9BzsUqX0TRm3U>5A zq)vvDfXrUwYx5fbq1H|5?SEhl&#H@k<2`sL>E@B^JRksH z0q=QAERZ4>h!22Y+7ihZDOiX?T|=V=t}iDa|B^#RYv9PzTEA+|EjM?7Q!yQLD#-)* zm`@S8pojsTaAz#du{m>Ia<+C9{?4>DIVLGo`xhd=0U>h%Nn^jG8=?N>#bm9UbT;yu zWO7Xyq>4_?24M(GT-cyBSZ7)JLQvPSe!Wa(+p~&A~Cjs2^lMvuOU>T!XN)CTmnbMZ-81P4Y6*W(I`= zLE?%NT!#E+vqI(c?;J3wjrxsZf9J0KPg=Z^>T7)&`4g{zBx_`miGV?8Z0SZDWe!_h zx3!c1a6WOGmp$(s{1<}o*f2c5u{4x-K&fr)l=SsDkab1_*N}C~0}Q>kG_%l2_t{ZO zsW}f7(_bHT0Dey{O9I>(RZ;H|{LfzqG?)op9yK1N=bCs$)Nza9_ zSiBSShbX>>hY}6(0q#9~4}Ii>bPtPBu7xuyQNIFt3;*7qoQodr!Gb=2oPYMfNc@2P zMNmy~Z)0O|#AwHG*ET~HGe5ccK=a+n?#K{6Z_Q(XKs6_BTsGBr04I}BN#?u2yTCj6 zfX!^U`F5Y$oI_(niDVR7ZdLBb3J-)o{Y;h?O4-e*#0NlxbPtK%+WW~k=Y)MP%_rIN zy3b2o4T||yyO(Z0nIqa_jA?>y{fnXvaZb0Pp@+Mf{Q4?KlusDn0i1RtzpDn6?-B&~ zzxmP^sUebNzWbe40w>ZCqt&uxE{pT*X8|DF>JAM(O{9A*4;9{2Fg1UZUd09QxRCw;k)zjmy1wrSBDK!ohlhGhsS!9zQeMeRm z_bpzmH~}}81-dgs_-yje2yF)`kMX+~P}yVr+Q%4!k=hr?%1bYjPwGyNjSa=O4XvGn z{LPxB1bcR3mps0c+Aww3d%TRo_jjBrb*ODCS9{j_f^K2erSdg1DGj<$-1@`ul=GH{ z?kLMX>D03ml=M?nz2jw!&B*lICLXCsh zRP}-ves*wis=N*lhQZMF2@KbtIC=|?-nmS~{k+-!-E1vx(JKsgvmFd`qL#+YPs46J z0f=d98Hn*KiU9xx=N>CaaFOktKgzN?Ip*+$)lo;CyRp=>Cbo1$JZ1bx{hqIAoxhu2 z0Gi_O+t|jx-Y;@jG_u89&-&e_H`|kRTYYpzy{+xcy-$hWRkv%(c&gYG>m6$;CGmDg zysoXy+XkEDCu)4#RiBBzlhx#|7QUsd^vK3;-`(wvqWN#5W8i=%$>$h1p8+(xTr*Db?fQij_GiYkv6ve-;uPCZm;dpL(_%sWd9FH| XrJ1;rRoAt+D#a{S8`p}pYQVn$$52i> diff --git a/data/adtte_twt.rda b/data/adtte_twt.rda index 733cb4e54bcbf6eb11bd3e0f7795242924f9ff0f..9f5cd99f67070855699ea6310586a9e4b57f4404 100644 GIT binary patch literal 11463 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 MhD8XRa%8vs9|v*>f&c&j literal 11558 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 UjD=eFLq|MqUtnOWRoKt}1-h@Ak^lez diff --git a/data/centered_ipd_twt.rda b/data/centered_ipd_twt.rda index b1949e88fddb36a6565efc3508af2d7e98572a85..893f12e35e245e3e27d4733f23913d93f011850c 100644 GIT binary patch literal 7913 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 literal 7889 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 kJC8<+WhSlY=_AU|Iaz!{$kYNYEqfQc&WdHyG literal 7013 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 DHE*DX diff --git a/man/adrs_twt.Rd b/man/adrs_twt.Rd new file mode 100644 index 00000000..11105141 --- /dev/null +++ b/man/adrs_twt.Rd @@ -0,0 +1,23 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/data.R +\docType{data} +\name{adrs_twt} +\alias{adrs_twt} +\title{Binary outcome data from two arm trial} +\format{ +A data frame with 1000 rows and 5 columns: +\describe{ +\item{USUBJID}{Unique subject identifiers for patients.} +\item{ARM}{Assigned treatment arm, \code{"A"}, \code{"C"}.} +\item{AVAL}{Analysis value, in this dataset an indicator of response.} +\item{PARAM}{Parameter type of \code{AVAL}.} +\item{RESPONSE}{Indicator of response.} +} +} +\usage{ +adrs_twt +} +\description{ +Binary outcome data from two arm trial +} +\keyword{datasets} diff --git a/man/centered_ipd_sat.Rd b/man/centered_ipd_sat.Rd index 33709ac8..5edd51cb 100644 --- a/man/centered_ipd_sat.Rd +++ b/man/centered_ipd_sat.Rd @@ -16,7 +16,8 @@ A data frame with 500 rows and 14 columns: \item{N_PR_THER}{Number of prior therapies received as integer \verb{1, 2, 3, 4}.} \item{SEX_MALE}{Indicator of \code{SEX == "Male"} as numeric \code{1}/\code{0}.} \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data \link{agd}.} -\item{AGE_MEDIAN_CENTERED}{\code{AGE} greater/less than \code{MEDIAN_AGE} in \link{agd} coded as \code{1}/\code{0} and then centered.} +\item{AGE_MEDIAN_CENTERED}{\code{AGE} greater/less than \code{MEDIAN_AGE} in \link{agd} coded as \code{1}/\code{0} and then centered at +0.5.} \item{AGE_SQUARED_CENTERED}{TODO} \item{SEX_MALE_CENTERED}{\code{SEX_MALE} centered by the proportion of male patients in \link{agd}} \item{ECOG0_CENTERED}{\code{ECOG0} centered by the proportion of \code{ECOG0} in \link{agd}} diff --git a/man/centered_ipd_twt.Rd b/man/centered_ipd_twt.Rd index a91b3329..96c78197 100644 --- a/man/centered_ipd_twt.Rd +++ b/man/centered_ipd_twt.Rd @@ -16,7 +16,8 @@ A data frame with 1000 rows and 14 columns: \item{N_PR_THER}{Number of prior therapies received as integer \verb{1, 2, 3, 4}.} \item{SEX_MALE}{Indicator of \code{SEX == "Male"} as numeric \code{1}/\code{0}.} \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data \link{agd}.} -\item{AGE_MEDIAN_CENTERED}{\code{AGE} greater/less than \code{MEDIAN_AGE} in \link{agd} coded as \code{1}/\code{0} and then centered.} +\item{AGE_MEDIAN_CENTERED}{\code{AGE} greater/less than \code{MEDIAN_AGE} in \link{agd} coded as \code{1}/\code{0} and then centered at +0.5.} \item{AGE_SQUARED_CENTERED}{TODO} \item{SEX_MALE_CENTERED}{\code{SEX_MALE} centered by the proportion of male patients in \link{agd}} \item{ECOG0_CENTERED}{\code{ECOG0} centered by the proportion of \code{ECOG0} in \link{agd}} From ff94b85d230e62f20c9a47215f5b9a29e5f9a670 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Fri, 21 Jun 2024 10:28:50 +0200 Subject: [PATCH 13/18] complete TODOs --- R/data.R | 6 ++++-- man/centered_ipd_sat.Rd | 3 ++- man/centered_ipd_twt.Rd | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/R/data.R b/R/data.R index a6e04bce..d99586ff 100644 --- a/R/data.R +++ b/R/data.R @@ -62,7 +62,8 @@ #' \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data [agd].} #' \item{AGE_MEDIAN_CENTERED}{`AGE` greater/less than `MEDIAN_AGE` in [agd] coded as `1`/`0` and then centered at #' 0.5.} -#' \item{AGE_SQUARED_CENTERED}{TODO} +#' \item{AGE_SQUARED_CENTERED}{`AGE` squared and centered with respect to the `AGE` in [agd]. The squared age in the +#' aggregate data is derived from the \eqn{E(X^2)} term in the variance formula.} #' \item{SEX_MALE_CENTERED}{`SEX_MALE` centered by the proportion of male patients in [agd]} #' \item{ECOG0_CENTERED}{`ECOG0` centered by the proportion of `ECOG0` in [agd]} #' \item{SMOKE_CENTERED}{`SMOKE` centered by the proportion of `SMOKE` in [agd]} @@ -196,7 +197,8 @@ #' \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data [agd].} #' \item{AGE_MEDIAN_CENTERED}{`AGE` greater/less than `MEDIAN_AGE` in [agd] coded as `1`/`0` and then centered at #' 0.5.} -#' \item{AGE_SQUARED_CENTERED}{TODO} +#' \item{AGE_SQUARED_CENTERED}{`AGE` squared and centered with respect to the `AGE` in [agd]. The squared age in the +#' aggregate data is derived from the \eqn{E(X^2)} term in the variance formula.} #' \item{SEX_MALE_CENTERED}{`SEX_MALE` centered by the proportion of male patients in [agd]} #' \item{ECOG0_CENTERED}{`ECOG0` centered by the proportion of `ECOG0` in [agd]} #' \item{SMOKE_CENTERED}{`SMOKE` centered by the proportion of `SMOKE` in [agd]} diff --git a/man/centered_ipd_sat.Rd b/man/centered_ipd_sat.Rd index 5edd51cb..2d3e97a1 100644 --- a/man/centered_ipd_sat.Rd +++ b/man/centered_ipd_sat.Rd @@ -18,7 +18,8 @@ A data frame with 500 rows and 14 columns: \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data \link{agd}.} \item{AGE_MEDIAN_CENTERED}{\code{AGE} greater/less than \code{MEDIAN_AGE} in \link{agd} coded as \code{1}/\code{0} and then centered at 0.5.} -\item{AGE_SQUARED_CENTERED}{TODO} +\item{AGE_SQUARED_CENTERED}{\code{AGE} squared and centered with respect to the \code{AGE} in \link{agd}. The squared age in the +aggregate data is derived from the \eqn{E(X^2)} term in the variance formula.} \item{SEX_MALE_CENTERED}{\code{SEX_MALE} centered by the proportion of male patients in \link{agd}} \item{ECOG0_CENTERED}{\code{ECOG0} centered by the proportion of \code{ECOG0} in \link{agd}} \item{SMOKE_CENTERED}{\code{SMOKE} centered by the proportion of \code{SMOKE} in \link{agd}} diff --git a/man/centered_ipd_twt.Rd b/man/centered_ipd_twt.Rd index 96c78197..8fa63a9f 100644 --- a/man/centered_ipd_twt.Rd +++ b/man/centered_ipd_twt.Rd @@ -18,7 +18,8 @@ A data frame with 1000 rows and 14 columns: \item{AGE_CENTERED}{Age in years at baseline relative to average in aggregate data \link{agd}.} \item{AGE_MEDIAN_CENTERED}{\code{AGE} greater/less than \code{MEDIAN_AGE} in \link{agd} coded as \code{1}/\code{0} and then centered at 0.5.} -\item{AGE_SQUARED_CENTERED}{TODO} +\item{AGE_SQUARED_CENTERED}{\code{AGE} squared and centered with respect to the \code{AGE} in \link{agd}. The squared age in the +aggregate data is derived from the \eqn{E(X^2)} term in the variance formula.} \item{SEX_MALE_CENTERED}{\code{SEX_MALE} centered by the proportion of male patients in \link{agd}} \item{ECOG0_CENTERED}{\code{ECOG0} centered by the proportion of \code{ECOG0} in \link{agd}} \item{SMOKE_CENTERED}{\code{SMOKE} centered by the proportion of \code{SMOKE} in \link{agd}} From bfecd490056eacc6f689992d2d66af3a638344d9 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Fri, 21 Jun 2024 12:53:40 +0200 Subject: [PATCH 14/18] more updates --- R/data.R | 5 ++- data-raw/dummy_anchored.R | 2 +- data-raw/dummy_unanchored.R | 2 +- data/agd.rda | Bin 312 -> 326 bytes data/centered_ipd_sat.rda | Bin 3742 -> 3861 bytes data/centered_ipd_twt.rda | Bin 7913 -> 8115 bytes data/weighted_sat.rda | Bin 9483 -> 9605 bytes inst/WORDLIST | 49 +++++++++++----------- inst/examples/kmplot_anchored_ex.R | 47 ++++++--------------- inst/examples/maic_unanchored_binary_ex.R | 23 ++++------ inst/extdata/aggregate_data_example_1.csv | 8 ++-- man/adtte_sat.Rd | 1 - man/adtte_twt.Rd | 1 - man/agd.Rd | 1 + man/centered_ipd_sat.Rd | 1 + man/centered_ipd_twt.Rd | 1 + man/kmplot.Rd | 47 ++++++--------------- 17 files changed, 72 insertions(+), 116 deletions(-) diff --git a/R/data.R b/R/data.R index d99586ff..0990ef58 100644 --- a/R/data.R +++ b/R/data.R @@ -22,7 +22,6 @@ #' \describe{ #' \item{USUBJID}{Unique subject identifiers for patients.} #' \item{ARM}{Assigned treatment arm, `"A"`.} -#' \item{EVNT}{Event indicator `0`/`1`.} #' \item{AVAL}{Analysis value which in this dataset overall survival time in days.} #' \item{AVALU}{Unit of `AVAL`.} #' \item{PARAMCD}{Paramater code of `AVAL`, `"OS"`.} @@ -67,6 +66,7 @@ #' \item{SEX_MALE_CENTERED}{`SEX_MALE` centered by the proportion of male patients in [agd]} #' \item{ECOG0_CENTERED}{`ECOG0` centered by the proportion of `ECOG0` in [agd]} #' \item{SMOKE_CENTERED}{`SMOKE` centered by the proportion of `SMOKE` in [agd]} +#' \item{N_PR_THER_MEDIAN_CENTERED}{`N_PR_THER` centered by the median in [agd].} #' } #' @family unanchored datasets #' @keywords dataset @@ -116,6 +116,7 @@ #' \item{SEX_MALE_COUNT}{Number of male patients} #' \item{ECOG0_COUNT}{Number of patients with ECOG score = 0} #' \item{SMOKE_COUNT}{Number of smokers} +#' \item{N_PR_THER_MEDIAN}{Median number of prior therapies} #' } #' @family unanchored datasets #' @family anchored datasets @@ -147,7 +148,6 @@ #' \describe{ #' \item{USUBJID}{Unique subject identifiers for patients.} #' \item{ARM}{Assigned treatment arm, `"A"`, `"C"`.} -#' \item{EVNT}{Event indicator `0`/`1`.} #' \item{AVAL}{Analysis value which in this dataset overall survival time in days.} #' \item{AVALU}{Unit of `AVAL`.} #' \item{PARAMCD}{Parameter code of `AVAL`, `"OS"`.} @@ -202,6 +202,7 @@ #' \item{SEX_MALE_CENTERED}{`SEX_MALE` centered by the proportion of male patients in [agd]} #' \item{ECOG0_CENTERED}{`ECOG0` centered by the proportion of `ECOG0` in [agd]} #' \item{SMOKE_CENTERED}{`SMOKE` centered by the proportion of `SMOKE` in [agd]} +#' \item{N_PR_THER_MEDIAN_CENTERED}{`N_PR_THER` centered by the median in [agd].} #' } #' @keywords dataset #' @family anchored datasets diff --git a/data-raw/dummy_anchored.R b/data-raw/dummy_anchored.R index a33d729f..d6f48d26 100644 --- a/data-raw/dummy_anchored.R +++ b/data-raw/dummy_anchored.R @@ -24,7 +24,7 @@ adtte <- read.csv(system.file("extdata", "adtte.csv", mustWork = TRUE )) adtte$TIME <- adtte$AVAL -adtte$EVENT <- adtte$EVNT +adtte$EVENT <- 1 - adtte$CNSR adtte$USUBJID <- paste0("xx", adtte$USUBJID) adtte2 <- adtte diff --git a/data-raw/dummy_unanchored.R b/data-raw/dummy_unanchored.R index fdb3d8de..299fd2f2 100644 --- a/data-raw/dummy_unanchored.R +++ b/data-raw/dummy_unanchored.R @@ -13,7 +13,7 @@ adtte_sat <- read.csv(system.file("extdata", "adtte.csv", mustWork = TRUE )) adtte_sat$TIME <- adtte_sat$AVAL -adtte_sat$EVENT <- adtte_sat$EVNT +adtte_sat$EVENT <- 1 - adtte_sat$CNSR adtte_sat <- adtte_sat[adtte_sat$ARM == "A", , drop = FALSE] adsl_sat <- adsl_sat[adsl_sat$USUBJID %in% adtte_sat$USUBJID, , drop = FALSE] diff --git a/data/agd.rda b/data/agd.rda index ba6c9dd4287d28b7c16616a70dd5058d8f808ab3..394384be07da6270d186a9014405d56bbd4022aa 100644 GIT binary patch literal 326 zcmV-M0lEG{T4*^jL0KkKS=iMJIsgFifAIhRNB{r@co1&y-e9k%-=M$%2mlZOKm)J= z7(_;rX*7C6O${^v05lB)Kn7|9nqp+hqX~jyX@E=u7$X8O2^2<3Xf)b@000^Rq3Rg{ zvW%zVSKD(V;kI z8M(eZ^dpu(Vs80)RcX?2Tb zxI59l)=q7(<*imcCxLP#rrA*T!4Hh}(sUUYJjax}h654eR2v{+dAllkX%}~RK|kEr zo1Ys7-AhwHP`oxewdZ_Uu}c%=*%0?d4dV>zF_@c>{AC-|zSM{qg(j_x$7ic)lO+e_oIGKQFgXrUSt>1n(cR zJ#%RraIkUf|7B5UXZiNL1~rZ|2eP^Apz>~Cj4I5^4~!}W0N#xmKH4%qPCPbQ=P<&w#G@HzUW=|3Trrg>J1ma&af-%s5 zwGxJjW)2MvH^NvVCZK0cP{9d_-?KVVwbgU8tkC#s8-JE{L=_kc0OagAHVsYess6qL zASf9eA%tQgh)iuNHm^q*LBx3QaSD&V(z&`{{U_PYtW}{Co?OU5t8(-JX0H>KgC=UK z=KjQN_uno(Q@)H>FI1H;5Xa>zjtM)Xb5Fyr z>%Y)XD%<~LMQ?`#Ze@Sx@VzsM6r##4{W=0gTG0*5$bY32=ASo$~d&mr_3e_4Wfc6SadhNFCF?40Ru?ejHLT z@#8t+;@GtoJHow?ng=JsQ^OQ`irCXPWkm&!%kxuDD{su!5E^aAEN;Dt-g`Y=q5JxN zY3#0YZDRXx2SWl`M=HCk)8E}66k-fhBI-aOqKfv>trYc{wU_3%Sf4u!d^%#EvSlv2 z*MZUM)f~=FJ_?DUi(#3_JQ6=8-%QH$6Z-`SX2&|8Bx_1NJ+*w{aHPADpO&&Vwgr7V z5i@idDloz2W#br_Sy+u<4sfZmCVk+s^Xk_N+fI4SH=az)L-p!JSbD!qoI+5})_<0T zHiXiv9N=5Gd8xiRMs!Akud5Ufms^vcr|c}L;Tg=s<|6Q-@p0|?lgVj&yPrtepGP|m zjyxLI(Xqi`@LgXVk2bV>GN-*gJ(NKFn=dLt+lO-Ji<-dtXcl?TwTh|R`U2eIA}lJA z&M3jmm((Zc)yMVbh@ULPcP@MySpWM%+lg~=60@iANjYsVT$=E`9DCGLMSd{P6vwL_ zPBOSV5IiB|4L^8QTopW-=sTc^Fue-P-IQY?%3pi1Jhy?elcJj~2!YRj08r{P0OwNl zEG`LVwkfk)w{xrw=e(BuRp5etk02aqF=J7UmJslOP#$k)7R^{WKU)*@q30bv?d8>- zB>O-kEyCpA`K*iT{)~E)psf`k z1A88Xl+drZlDm8=X7yi5_R_C~1xTZEqjhgJ75I8(Xh&O?P4SaGy{u=#T^@B+6ac$I z@U|!!iJ|SBsdI`yQk++Cd1O0)m~ZlFJF@ArVd*@O7w zyPCV@V-FOpHTz$zpMA`Z&rps3^5Q^5u0@jVi_!fv-8pbZR#3?Ylilc4!{^6RiZMDq zQgtb#;>g<1hIrVhIyoBDya&@MZrrgf>Alce{8ua$4Sbr?RJTxXZ%Q?tB zKCVs8_AuBXfa|y5l;Rfp(09F5-KG7HkdmAu`|oo*x$oOmJX)bnM6~h zTWw$FH%n|SHu!N^`SfxlvcsBBHjoW_*DAtEfrE_f%ZCMAQq0Go0vZi-t0d0cCp>Kw zKJ;ZO9#g_B;z*25=dm!U;SfJ3zpnTOGh#hD7%YgfRB1+0GxYD%qneVYnI>g3KHG|n zUP+iYHpz98phM7`;K%A}r865OjD+lXTJ^+vs>Rd@7`Vca4jh%^%aZ*QdwAj{poKi z6mcgwy{dumTf^ypXZ0LHGA>>mT(Pk~@agN=!|{oUM~caRoL8yVUr z?*EiO7%D3m%!j*~dI-35E`4nzIVM)CwldvpCSQT6$-|8cuNy6qGa$A;Eby3YPP`Kt5$ z23Ww^AybW7L00R(jl1KEg5H6={=UG9AZ=g%xMe&VJd#=UqKD*u0|;a=C|F!JI*@{E z`Lgei`#;X6VwlQK14gIqI_dXE_eASeO#QSx>|p)xExEqP^U7J69zT)f3S2o}LmBRzo-e28*SjLa^_a$s^^u_c9FXHW2>f0ru$z7e zqMI*(G@W;Wfavh{&`e)n4?fAw)r-R#7*Ck~*`?)LxK2V`(OJ9I*5uR2>H-ksx*ldm zX5~$`I$k_q@?l%2QsHW|EvX}|=45={T+tW1F}1m=pp{+1_C<5F!I*60Q)~Qn*AwNf z>|^AX>#o=5f>w0uv(Eg0AJWZw!1pSDl_@qq;#IE0_e(f5=fYLBb{o>&0Kk66E|l4c z7qb3#_M*A%ow*|Ejeu9WvZGG}*+;@&6~Pwt$HhXbjfM@@jZ`AMF}%up=}j~71Cg3$QT=l*mP7XH3;nDqcJnR;v2)nk`XjTU?K1j z#JUK`wA?N3vQ~%#)*vBiBb@w*C%X8HT|>R2>;(SN?cgBn;+dnthu><|?`%|w6x*w! zs&4P~Y00U51_)Q}PYX}%JuuM5d^h#2x`y4g>sav;sfZ)Xt`sl$wNBa7>}f<20>`YU zCgk94;8ol?D!G^Brb=~HM|%3gK;9Pq>UM^P?oiHfjB@+1VP2zOM1K)V4~q=m76NIx zvvp-@>aXmL8jCRIxitu!TWY9>hoir~e0m=7*PN!`)fe z@(W?P4+|%lXMALM4?{Oj2N0bQ9nW|aH@QMLPgp_nE)Lm7cAj~I_R4~Ca0@MD&5?vCM9Kmd7%F&R# z!e}@Tm-_%tG4u<8OeRonu!s%#ejHjGo{(1(Wdp{sJn4pdFzhx&sJz0B;O6Otq8eE} zf>nzj<#6R?sEDdqh@qRHw``P;ph1FbtSJOHDj#>N>&o@=z~4`>6?OPg_v_&4UJtYc zC-4Fg&9rorVzX9-$bb}hGSRv1`-5tB`g|7CFOe-iwfrG^yhN|l;2`#3pdJ8#$%MGT zGGRQ`sZGzQ(d^vB)ZqjB9V$|IsLgc3ru>O-`cqULQ-pTJ4P1PgPTpW|s6h;?H&>iu o)UbY*zwP(4cnR{+kC>@1R*?@Kua;i?^Nr_q4Fu@jL2Sf-06n6#Q2+n{ literal 3742 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 diff --git a/data/weighted_sat.rda b/data/weighted_sat.rda index 5ac0a3e702715b561f0c5ef8e72a71705e9d6986..0ca4dda053499c99dd144a95972784f518e6a657 100644 GIT binary patch literal 9605 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 aqd>-#(HGMRy_nPg#oUoj6eIzG-WNc?HKl|A diff --git a/inst/WORDLIST b/inst/WORDLIST index ffac26da..9f5dac06 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -1,58 +1,59 @@ -ADTTE ADaM -AgD -Azocar -Bucher -Comparator -DSU -ECOG -ESS -IPD -Kaplan -MAIC -Paramater -Phillippo -Pre -Remiro -Schoenfeld -Signorovitch -TSD -TTE -Texp -USUBJID -Unanchored -Univariable -XXXX adrs adsl +ADTTE adtte +AgD agd agg al +Azocar binarize +Bucher +Comparator comparator confounders csv +DSU dummize dummized +ECOG +ESS et frac ggplot glm hta initializer +IPD ipd +Kaplan +MAIC multivariable optim +Paramater pharma +Phillippo phillippo +Pre pre preprocessed +Remiro reproducibility +Schoenfeld sd +Signorovitch signorovitch +Texp +THER +TSD +TTE tte +Unanchored unanchored +Univariable unscaled unstacked +USUBJID vcovHC +XXXX diff --git a/inst/examples/kmplot_anchored_ex.R b/inst/examples/kmplot_anchored_ex.R index 514d2e24..3112eb56 100644 --- a/inst/examples/kmplot_anchored_ex.R +++ b/inst/examples/kmplot_anchored_ex.R @@ -2,40 +2,19 @@ ### IPD # Read in relevant ADaM data and rename variables of interest -adsl <- read.csv(system.file("extdata", "adsl.csv", - package = "maicplus", - mustWork = TRUE -)) -adtte <- read.csv(system.file("extdata", "adtte.csv", - package = "maicplus", - mustWork = TRUE -)) -adtte$TIME <- adtte$AVAL -adtte$EVENT <- adtte$EVNT -adtte2 <- adtte -adtte2$ARM <- "C" -adtte2$TIME <- adtte2$TIME + 7 -adtte <- rbind(adtte, adtte2) +adsl_twt +adtte_twt ### AgD # Baseline aggregate data for the comparator population -target_pop <- read.csv(system.file("extdata", "aggregate_data_example_1.csv", - package = "maicplus", mustWork = TRUE -)) +agd + # for time-to-event endpoints, pseudo IPD from digitalized KM -pseudo_ipd <- read.csv(system.file("extdata", "psuedo_IPD.csv", - package = "maicplus", - mustWork = TRUE -)) -pseudo_ipd$ARM <- "B" -pseudo_ipd2 <- pseudo_ipd -pseudo_ipd2$ARM <- "C" -pseudo_ipd2$Time <- pseudo_ipd2$Time + 5 -pseudo_ipd <- rbind(pseudo_ipd, pseudo_ipd2) +pseudo_ipd_twt #### prepare data -target_pop <- process_agd(target_pop) -adsl <- dummize_ipd(adsl, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) +target_pop <- process_agd(agd) +adsl <- dummize_ipd(adsl_twt, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) use_adsl <- center_ipd(ipd = adsl, agd = target_pop) #### derive weights @@ -49,9 +28,9 @@ match_res <- estimate_weights( # plot by trial kmplot( weights_object = match_res, - tte_ipd = adtte, + tte_ipd = adtte_twt, trt_var_ipd = "ARM", - tte_pseudo_ipd = pseudo_ipd, + tte_pseudo_ipd = pseudo_ipd_twt, trt_var_agd = "ARM", endpoint_name = "Overall Survival", trt_ipd = "A", @@ -71,9 +50,9 @@ kmplot( # plot by arm kmplot( weights_object = match_res, - tte_ipd = adtte, + tte_ipd = adtte_twt, trt_var_ipd = "ARM", - tte_pseudo_ipd = pseudo_ipd, + tte_pseudo_ipd = pseudo_ipd_twt, trt_var_agd = "ARM", endpoint_name = "Overall Survival", trt_ipd = "A", @@ -92,9 +71,9 @@ kmplot( # plot all kmplot( weights_object = match_res, - tte_ipd = adtte, + tte_ipd = adtte_twt, trt_var_ipd = "ARM", - tte_pseudo_ipd = pseudo_ipd, + tte_pseudo_ipd = pseudo_ipd_twt, trt_var_agd = "ARM", endpoint_name = "Overall Survival", trt_ipd = "A", diff --git a/inst/examples/maic_unanchored_binary_ex.R b/inst/examples/maic_unanchored_binary_ex.R index 31bcd7e0..e44b25f6 100644 --- a/inst/examples/maic_unanchored_binary_ex.R +++ b/inst/examples/maic_unanchored_binary_ex.R @@ -1,19 +1,14 @@ -# load in prognostic IPD data and AgD -load(system.file("extdata", "ipd.rda", package = "maicplus", mustWork = TRUE)) -load(system.file("extdata", "agd.rda", package = "maicplus", mustWork = TRUE)) -ipd_centered <- center_ipd(ipd = ipd, agd = agd) +# load in centered prognostic IPD data -# estimate weights -centered_colnames <- c("AGE", "AGE_SQUARED", "SEX_MALE", "ECOG0", "SMOKE", "N_PR_THER_MEDIAN") -centered_colnames <- paste0(centered_colnames, "_CENTERED") +centered_ipd_sat +centered_colnames <- grep("_CENTERED$", colnames(centered_ipd_sat), value = TRUE) +weighted_data <- estimate_weights(data = centered_ipd_sat, centered_colnames = centered_colnames) +weighted_data2 <- estimate_weights(data = centered_ipd_sat, centered_colnames = centered_colnames, n_boot_iteration = 500) -weighted_data <- estimate_weights(data = ipd_centered, centered_colnames = centered_colnames) -weighted_data2 <- estimate_weights(data = ipd_centered, centered_colnames = centered_colnames, n_boot_iteration = 500) +# binary IPD +adrs_sat # get dummy binary IPD -adrs <- read.csv(system.file("extdata", "adrs.csv", package = "maicplus", mustWork = TRUE)) -adrs$RESPONSE <- adrs$AVAL - pseudo_adrs <- get_pseudo_ipd_binary( binary_agd = data.frame( ARM = rep("B", 2), @@ -26,7 +21,7 @@ pseudo_adrs <- get_pseudo_ipd_binary( # unanchored binary MAIC, with CI based on sandwich estimator maic_unanchored( weights_object = weighted_data, - ipd = adrs, + ipd = adrs_sat, pseudo_ipd = pseudo_adrs, trt_ipd = "A", trt_agd = "B", @@ -42,7 +37,7 @@ maic_unanchored( # unanchored binary MAIC, with bootstrapped CI maic_unanchored( weights_object = weighted_data2, - ipd = adrs, + ipd = adrs_sat, pseudo_ipd = pseudo_adrs, trt_ipd = "A", trt_agd = "B", diff --git a/inst/extdata/aggregate_data_example_1.csv b/inst/extdata/aggregate_data_example_1.csv index 32d705b2..a1128627 100644 --- a/inst/extdata/aggregate_data_example_1.csv +++ b/inst/extdata/aggregate_data_example_1.csv @@ -1,4 +1,4 @@ -STUDY,ARM,N,AGE_MEAN,AGE_MEDIAN,AGE_SD,SEX_MALE_COUNT,ECOG0_COUNT,SMOKE_COUNT -Study_XXXX,Total,300,51,49,3.25,147,105,58 -Study_XXXX,Intervention,,,,,,, -Study_XXXX,Comparator,,,,,,, +STUDY,ARM,N,AGE_MEAN,AGE_MEDIAN,AGE_SD,SEX_MALE_COUNT,ECOG0_COUNT,SMOKE_COUNT,N_PR_THER_MEDIAN +Study_XXXX,Total,300,51,49,3.25,147,105,58,2 +Study_XXXX,Intervention,,,,,,,, +Study_XXXX,Comparator,,,,,,,, diff --git a/man/adtte_sat.Rd b/man/adtte_sat.Rd index 06c58bb9..6d21be80 100644 --- a/man/adtte_sat.Rd +++ b/man/adtte_sat.Rd @@ -9,7 +9,6 @@ A data frame with 500 rows and 10 columns: \describe{ \item{USUBJID}{Unique subject identifiers for patients.} \item{ARM}{Assigned treatment arm, \code{"A"}.} -\item{EVNT}{Event indicator \code{0}/\code{1}.} \item{AVAL}{Analysis value which in this dataset overall survival time in days.} \item{AVALU}{Unit of \code{AVAL}.} \item{PARAMCD}{Paramater code of \code{AVAL}, \code{"OS"}.} diff --git a/man/adtte_twt.Rd b/man/adtte_twt.Rd index 04635cbb..5e6d2618 100644 --- a/man/adtte_twt.Rd +++ b/man/adtte_twt.Rd @@ -9,7 +9,6 @@ A data frame with 1000 rows and 10 columns: \describe{ \item{USUBJID}{Unique subject identifiers for patients.} \item{ARM}{Assigned treatment arm, \code{"A"}, \code{"C"}.} -\item{EVNT}{Event indicator \code{0}/\code{1}.} \item{AVAL}{Analysis value which in this dataset overall survival time in days.} \item{AVALU}{Unit of \code{AVAL}.} \item{PARAMCD}{Parameter code of \code{AVAL}, \code{"OS"}.} diff --git a/man/agd.Rd b/man/agd.Rd index 5c8c2334..31b097e0 100644 --- a/man/agd.Rd +++ b/man/agd.Rd @@ -16,6 +16,7 @@ A data frame with 3 rows and 9 columns: \item{SEX_MALE_COUNT}{Number of male patients} \item{ECOG0_COUNT}{Number of patients with ECOG score = 0} \item{SMOKE_COUNT}{Number of smokers} +\item{N_PR_THER_MEDIAN}{Median number of prior therapies} } } \usage{ diff --git a/man/centered_ipd_sat.Rd b/man/centered_ipd_sat.Rd index 2d3e97a1..671e44d4 100644 --- a/man/centered_ipd_sat.Rd +++ b/man/centered_ipd_sat.Rd @@ -23,6 +23,7 @@ aggregate data is derived from the \eqn{E(X^2)} term in the variance formula.} \item{SEX_MALE_CENTERED}{\code{SEX_MALE} centered by the proportion of male patients in \link{agd}} \item{ECOG0_CENTERED}{\code{ECOG0} centered by the proportion of \code{ECOG0} in \link{agd}} \item{SMOKE_CENTERED}{\code{SMOKE} centered by the proportion of \code{SMOKE} in \link{agd}} +\item{N_PR_THER_MEDIAN_CENTERED}{\code{N_PR_THER} centered by the median in \link{agd}.} } } \usage{ diff --git a/man/centered_ipd_twt.Rd b/man/centered_ipd_twt.Rd index 8fa63a9f..a34fa20c 100644 --- a/man/centered_ipd_twt.Rd +++ b/man/centered_ipd_twt.Rd @@ -23,6 +23,7 @@ aggregate data is derived from the \eqn{E(X^2)} term in the variance formula.} \item{SEX_MALE_CENTERED}{\code{SEX_MALE} centered by the proportion of male patients in \link{agd}} \item{ECOG0_CENTERED}{\code{ECOG0} centered by the proportion of \code{ECOG0} in \link{agd}} \item{SMOKE_CENTERED}{\code{SMOKE} centered by the proportion of \code{SMOKE} in \link{agd}} +\item{N_PR_THER_MEDIAN_CENTERED}{\code{N_PR_THER} centered by the median in \link{agd}.} } } \usage{ diff --git a/man/kmplot.Rd b/man/kmplot.Rd index d81ef433..744c6524 100644 --- a/man/kmplot.Rd +++ b/man/kmplot.Rd @@ -65,40 +65,19 @@ It is wrapper function of \code{basic_kmplot}. The argument setting is similar t ### IPD # Read in relevant ADaM data and rename variables of interest -adsl <- read.csv(system.file("extdata", "adsl.csv", - package = "maicplus", - mustWork = TRUE -)) -adtte <- read.csv(system.file("extdata", "adtte.csv", - package = "maicplus", - mustWork = TRUE -)) -adtte$TIME <- adtte$AVAL -adtte$EVENT <- adtte$EVNT -adtte2 <- adtte -adtte2$ARM <- "C" -adtte2$TIME <- adtte2$TIME + 7 -adtte <- rbind(adtte, adtte2) +adsl_twt +adtte_twt ### AgD # Baseline aggregate data for the comparator population -target_pop <- read.csv(system.file("extdata", "aggregate_data_example_1.csv", - package = "maicplus", mustWork = TRUE -)) +agd + # for time-to-event endpoints, pseudo IPD from digitalized KM -pseudo_ipd <- read.csv(system.file("extdata", "psuedo_IPD.csv", - package = "maicplus", - mustWork = TRUE -)) -pseudo_ipd$ARM <- "B" -pseudo_ipd2 <- pseudo_ipd -pseudo_ipd2$ARM <- "C" -pseudo_ipd2$Time <- pseudo_ipd2$Time + 5 -pseudo_ipd <- rbind(pseudo_ipd, pseudo_ipd2) +pseudo_ipd_twt #### prepare data -target_pop <- process_agd(target_pop) -adsl <- dummize_ipd(adsl, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) +target_pop <- process_agd(agd) +adsl <- dummize_ipd(adsl_twt, dummize_cols = c("SEX"), dummize_ref_level = c("Female")) use_adsl <- center_ipd(ipd = adsl, agd = target_pop) #### derive weights @@ -112,9 +91,9 @@ match_res <- estimate_weights( # plot by trial kmplot( weights_object = match_res, - tte_ipd = adtte, + tte_ipd = adtte_twt, trt_var_ipd = "ARM", - tte_pseudo_ipd = pseudo_ipd, + tte_pseudo_ipd = pseudo_ipd_twt, trt_var_agd = "ARM", endpoint_name = "Overall Survival", trt_ipd = "A", @@ -134,9 +113,9 @@ kmplot( # plot by arm kmplot( weights_object = match_res, - tte_ipd = adtte, + tte_ipd = adtte_twt, trt_var_ipd = "ARM", - tte_pseudo_ipd = pseudo_ipd, + tte_pseudo_ipd = pseudo_ipd_twt, trt_var_agd = "ARM", endpoint_name = "Overall Survival", trt_ipd = "A", @@ -155,9 +134,9 @@ kmplot( # plot all kmplot( weights_object = match_res, - tte_ipd = adtte, + tte_ipd = adtte_twt, trt_var_ipd = "ARM", - tte_pseudo_ipd = pseudo_ipd, + tte_pseudo_ipd = pseudo_ipd_twt, trt_var_agd = "ARM", endpoint_name = "Overall Survival", trt_ipd = "A", From 427d1c09d3e29229193aafa13b3bed4c8713b723 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Fri, 21 Jun 2024 13:09:10 +0200 Subject: [PATCH 15/18] fix for lintr --- inst/examples/maic_unanchored_binary_ex.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/inst/examples/maic_unanchored_binary_ex.R b/inst/examples/maic_unanchored_binary_ex.R index e44b25f6..4ec8cf0b 100644 --- a/inst/examples/maic_unanchored_binary_ex.R +++ b/inst/examples/maic_unanchored_binary_ex.R @@ -3,7 +3,10 @@ centered_ipd_sat centered_colnames <- grep("_CENTERED$", colnames(centered_ipd_sat), value = TRUE) weighted_data <- estimate_weights(data = centered_ipd_sat, centered_colnames = centered_colnames) -weighted_data2 <- estimate_weights(data = centered_ipd_sat, centered_colnames = centered_colnames, n_boot_iteration = 500) +weighted_data2 <- estimate_weights( + data = centered_ipd_sat, centered_colnames = centered_colnames, + n_boot_iteration = 500 +) # binary IPD adrs_sat From 4f71ab97f129d4c1d74600c3bcf8fdcbe9e10bc3 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Fri, 21 Jun 2024 13:26:31 +0200 Subject: [PATCH 16/18] use previous columns --- tests/testthat/test-maic_anchored.R | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/testthat/test-maic_anchored.R b/tests/testthat/test-maic_anchored.R index 1cfbfb1c..2abd4b4d 100644 --- a/tests/testthat/test-maic_anchored.R +++ b/tests/testthat/test-maic_anchored.R @@ -55,9 +55,14 @@ test_that("maic_unanchored works for TTE using robust SE", { use_adsl <- center_ipd(ipd = adsl, agd = target_pop) #### derive weights + cols <- c( + "AGE_CENTERED", "AGE_MEDIAN_CENTERED", "AGE_SQUARED_CENTERED", + "SEX_MALE_CENTERED", "ECOG0_CENTERED", "SMOKE_CENTERED" + ) + # cols <- grep("_CENTERED$", names(use_adsl)) match_res <- estimate_weights( data = use_adsl, - centered_colnames = grep("_CENTERED$", names(use_adsl)), + centered_colnames = cols, start_val = 0, method = "BFGS" ) @@ -170,9 +175,14 @@ test_that("maic_unanchored works for TTE using bootstrap SE", { use_adsl <- center_ipd(ipd = adsl, agd = target_pop) #### derive weights + cols <- c( + "AGE_CENTERED", "AGE_MEDIAN_CENTERED", "AGE_SQUARED_CENTERED", + "SEX_MALE_CENTERED", "ECOG0_CENTERED", "SMOKE_CENTERED" + ) + # cols <- grep("_CENTERED$", names(use_adsl)) match_res_boot <- estimate_weights( data = use_adsl, - centered_colnames = grep("_CENTERED$", names(use_adsl)), + centered_colnames = cols, start_val = 0, method = "BFGS", n_boot_iteration = 5, From f0feb9373c1319668dfd5aa372cbdfc2242118dc Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Fri, 21 Jun 2024 13:28:17 +0200 Subject: [PATCH 17/18] use previous columns --- tests/testthat/test-maic_unanchored.R | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/testthat/test-maic_unanchored.R b/tests/testthat/test-maic_unanchored.R index c628e492..05614682 100644 --- a/tests/testthat/test-maic_unanchored.R +++ b/tests/testthat/test-maic_unanchored.R @@ -109,16 +109,21 @@ test_that("test time to event case", { use_adsl <- center_ipd(ipd = adsl, agd = target_pop) #### derive weights + cols <- c( + "AGE_CENTERED", "AGE_MEDIAN_CENTERED", "AGE_SQUARED_CENTERED", + "SEX_MALE_CENTERED", "ECOG0_CENTERED", "SMOKE_CENTERED" + ) + # cols <- grep("_CENTERED$", names(use_adsl)) match_res <- estimate_weights( data = use_adsl, - centered_colnames = grep("_CENTERED$", names(use_adsl)), + centered_colnames = cols, start_val = 0, method = "BFGS" ) match_res_boot <- estimate_weights( data = use_adsl, - centered_colnames = grep("_CENTERED$", names(use_adsl)), + centered_colnames = cols, start_val = 0, method = "BFGS", n_boot_iteration = 500, From 417c7070fd7136c25f7d3c112ee9f4f4d5dbbba3 Mon Sep 17 00:00:00 2001 From: Isaac Gravestock Date: Fri, 21 Jun 2024 14:06:39 +0200 Subject: [PATCH 18/18] remove EVNT column (again?) --- data-raw/dummy_anchored.R | 1 + data-raw/dummy_unanchored.R | 3 +++ data/adtte_sat.rda | Bin 6559 -> 6558 bytes data/adtte_twt.rda | Bin 11463 -> 11409 bytes data/weighted_sat.rda | Bin 9605 -> 9622 bytes 5 files changed, 4 insertions(+) diff --git a/data-raw/dummy_anchored.R b/data-raw/dummy_anchored.R index d6f48d26..19fd99ee 100644 --- a/data-raw/dummy_anchored.R +++ b/data-raw/dummy_anchored.R @@ -37,6 +37,7 @@ adtte2$EVENT <- tmp$event_1 adtte2$USUBJID <- paste0("yy", adtte2$USUBJID) adtte_twt <- rbind(adtte, adtte2) +adtte_twt$EVNT <- NULL ### Binary adrs_twt1 <- read.csv(system.file("extdata", "adrs.csv", package = "maicplus", mustWork = TRUE)) diff --git a/data-raw/dummy_unanchored.R b/data-raw/dummy_unanchored.R index 299fd2f2..198ee4a2 100644 --- a/data-raw/dummy_unanchored.R +++ b/data-raw/dummy_unanchored.R @@ -15,8 +15,11 @@ adtte_sat <- read.csv(system.file("extdata", "adtte.csv", adtte_sat$TIME <- adtte_sat$AVAL adtte_sat$EVENT <- 1 - adtte_sat$CNSR adtte_sat <- adtte_sat[adtte_sat$ARM == "A", , drop = FALSE] +adtte_sat$EVNT <- NULL + adsl_sat <- adsl_sat[adsl_sat$USUBJID %in% adtte_sat$USUBJID, , drop = FALSE] + ### AgD # Baseline aggregate data for the comparator population agd <- read.csv(system.file("extdata", "aggregate_data_example_1.csv", diff --git a/data/adtte_sat.rda b/data/adtte_sat.rda index 452a928b5883c81be402a73b5b6e70c30c56d8eb..3a64dcc1243d003a2b43f20dabcef0c395612240 100644 GIT binary patch literal 6558 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 literal 6559 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 literal 11463 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 MhD8XRa%8vs9|v*>f&c&j diff --git a/data/weighted_sat.rda b/data/weighted_sat.rda index 0ca4dda053499c99dd144a95972784f518e6a657..4938e68a9176d455fd18700527d1ea254084cbd3 100644 GIT binary patch literal 9622 zcmaiVWmppo)aV8SMt3)ilx83)j1dDtT3TsFcdOLs9-We-r9rwINs&^NZUiY2l>2`7 z`*Z)@^E{`|bLz)AN~TC@QJ4w0zRA;oBO?I(^W*;)esDi9vDza6z#U-l4qofUIin%~ z064(wXN3pMs|^w1;mr{P0lB<@fKVg=fCm6hgaX6?*Z=^@CIK3N{XfAB|Di1afE%F* zg)VYxhRUmQs^&VT{AUFKp#LE;ZWL5o75TViNT6O~CFWSl-hvtAp4XmF<12M64ZFkQy_O?=|YebsrnH;ba8K*}$<`|IJaK-QqeR^7H$i7s^#E_SVI%ocj`R3rh)YkqJRL6|@&R1#8?JTB! z67N_q?<9TmEvXML%*{!dc0PXO4b{NsfWg?}2o$S0!oiSKJ{*W1pY2~+?X`d3n;xf} zkbK1(?@RQoXO6%NlP^DbT3)6cOK6nxzDzf*Dbq8kbB(q=v}-A-2AxvX5iw*p@t>CQ zt;#HT6e~;5rC9sDAfhE+7q`vkAGL026e}90baikIbfN$t5Fs%XDIk0RL=uJ4z2d`t zbU3h@HTw`0SIYqXw-|`s^*HT3ER)C2T|LCD~#sk^`;{xqMBz$n-%_G=xF@ zJ@r&H@t<;QyE}aXGZ;ILu`Pf+3?I^;c7Di#ppQkNBy;)F!w_w>j~<=`8dgmVeCP;b zicmhWLB1w4G26C6%rp!}L4Y8e2cy#FYux=szhT_=%`&=FW$pM78hS)wY@p~6`IX6{BW_sGA4FhDU z8UU`-4|Pk0D;GXij9h#`AuMI5><^fQG{y8db&5$InAISD2V@<`o%SSlu7nyg;GWKH ztA~OM;+h~(D^}=SNQ!xwTHwW!`R&W#`+R|QJ^-k#Zq)yKQrEWv4h+<;kO76TF$*%1 z-b^iT-;I2d@kcl%B|UV%y*%J_-H%yprt`|Kci%m6J)sQpRAYb2J?Y!n2mfs^lMXX8 zzth9a&Y$(RwwwiAC9TsN{w5BDGB%6S_&`{^d)PVa(tfvK2?z<9%R0N$>_XEXo~-XT zPDLjivkMm7yvOe4)T&8sMOysLLjDXU6@1g_`ys8Z;MVQ%bgWsvTLY`-(W~d|EMfS{ zw4~i8Irv2*8=ie{r-kTHGw(|4(UkgU2sD2BtovXnasyA0(Q~`fuKQpxU$lSLu63sC zWazE4@1G8v)em1!hJ0__ergx)){sa!?tmJa?Yg?{|9B-PtA8Mw4LXcmKWPbi*-wTA zR;<*<1IugpDxugS$pA*gq-1hzv2ibX0ZoD~pQEv8o@u-?<+qBLHc_t(_qxPnYl_;! zI%2D`)W}DO=?lEv3W5Ggf@fTqIGTLOG!L$nGAMsUqQXc(V7cymc0g*?jnlMk-ko8U z*{d0~(JMFRpxNT*eHoVLk60mfL->ud~VZX*#N$&uWn*k26``qLrG* z6~pRoCb*|9&~d#K_2zs@-UL~fcWNQt7yT^IY}udb%B#oq`^?`p$Ejw&pdhoM(7`sr z>&cVLlNIQz^Y4pvJ&yA+-`{oC);GVv)8=t zT43;`o!4xR|JR}Q%YP0Mz`U^V83*sx-*~6E(JG}5WeWp?N{21y9&3r3&#F0%C~M>5 zV`AgJ{e0SW`e5z=e2<4(j2_;)_;}IyHA(wP*0l2{*O}y${c#@|d7=D-Ed81<$2YR_ zm|t((>6#ST$Gp2XeokuqmV3tM&Wbjg5*FO^7Tv!JGXK-_Zq{Y0-oIygXj?+!>972| z@fLL2qeQwh|7y1l2@}eHvs5ZQSxt>39;s}o0z;Qn3uIp2%r~g3H9XC*){Qj+?EKFQ z27p%%@hCX`-jCl&4&~q`5TA_4RmLo#t2wG`h_l^(Fopi#D1iKb4Ex}J<^PwG@x~SX zzxvx$+}8$)25K6=_&G|{zZ7!CRsNSRk({2R5}3Lz#RglLzk6}cBA!$RC=~&)~7+cp`b8N`nR@XCX*mIOyx4c@tJX+WKhoY=5xMlqvp#@jnp|IMa z!dQiok&vf%{>LkC+XlqHol4|q)V>->>Giw{C!(B3Y&x(Bqr4^%Zjb|2PdAWMp4K1$ z3>Lez#e2g@K#9y1eq1!lO8#Eo^*_ZyQqq4{@)bUU~PXKvSZlz3a%oK z(^QTlC1I!^&Q^?{J47kMtAU_Ha1c{ty!G|1IdtY*jni_J`6jsI5fkAFvDL~3#g3(I z!&YQ*5HbLO(V%>K{P|uO1-h&4vu$b&BYN781OQg^8^>B8N|h3$SU>zrX;y03%hX!) zBsW*fb!B0rsK3AxW{69MI*!RaV4nZB9=?4Md{P1iasD7fTO#D6+MOctAt)Iz$QX!% zP=84pgfyhY3ZxiK1ntOlK~^n+L{3^^Ty91M`bMQCZygx(f1^NCU<4q~)<+)#=(!x_ z7G*d2H6BBdhCSUL1>R~_$s$$GlTg~vkCG&8Qtg=s`Nc4+VEOmIj0WQ4dbq(FB}w8= z0R5y5sAt6C>0N3}e!j#7lupxBR&%`cJPPz%lS;29hcoj61)9hyPf%#G=}?e37T(G> zYc{Kossl+ZiKnEGb8_5=9q(H9xZ26*1X|`X%=;I_V5YxJyR9O=z1BBxLAC_LOf)jNXb0&6>hgFDuWd41eB{o1k`W2v&)M}U@gwd96?fQ_CHd*REjrB# zr;hB`$q@%NIRis|Dy84S$}laFG!1X{z}Kl5oy^0cj}@R&kPc<|sPL4lejXlKND~*2C2~AfaQvKK>mq<0yLmwns}rX~rv$<*s;R|@ zl~4P-a=h`a*O=D$j|)ScQ9|%J`(E3fz;uuJhDcduEMI(1s7m_VJfZzsk%L{AlRH^w zX@+)=u29wC77bK=3L2;(~T*z~A zG?}f1C3?gXOrcC!L04b?6%X`<_2FH$3R#6Qouy_@_7M$TN@(ij>e=e36C02fe=@Ha zwvIgx|1>FS5I#iNo^GQr2sH?Qnk{>H$BppBv#iDQcQm8+R#hR8A!nt(EhJ_T{KEOW zJzq9$3;uX?GB*F{XbqX&Bki$GPAK3DWUCt+^{`aRdM9h^%I_ORpYy3EbX!UsW1ZdN zH_B1c<1HD>2P!Q4A<*G&IWf=KGW}{`C+!P!LdZgX$r1E5Nibh+?Wz1E;ir^ggU&zE zv!XR;Gx>$|##pl*uf$V;mwGqvZo~YvRIo6T_kTD-l+&?SL0Eg;4How$(uQ5cU&4Sd z!IHYWCEoxN9b}9OWeybs>SbhJ*G|xk@+pVEbq*^bFD=q8S9$v{6~X6Lp05^!dzG7M zGcP>n`BwSK1c<&@J#haleLF}0qCZqlBbBOW0D#N^&8p9AP~r!2_49 ztb-{zk$3b7@NPLyWOA>&JSg6#Fs{x!-R;oiaK+~egwF_#FflK7==quV5*lmV|5MO#M4v3&lMq*8iZvznL7 za=RH6nQCy0mXr?bZ-1?)H{j768C&?}=+Ig`aQ};3RqM<>*UHL?tl`G%(K*}A!`lqb z=UtW&)oaRoG3|}nG-!Vl!n(%%=B!}r?E%|nXG1MMcF(un+jno{fk&!A<0XoHA=|R$ zrP0gx^?Oa|56lH2#JY{Gf*+igrI#I^h@#kNP5U7@lBp?hA8#eJqsTPxbR<3voRW$| zAQRG}f~6yZpG_fg*yA?lN=W`7JB78TZqFFN#b|65SMAtC*%#Suj^BLQP;c@T%_u%D-KW9U? zJ$*}c8z5wa4KBJFvH<6Gf=)snbi6HlOzn+`QIb@#|~7ddxk07cmrI+Q&0+ z8^U+7;Z#_$qp%cwAlNe91MMS#OaQ|v6r>R(SoS*XZw|4DFzg`vcn{@)n4C0l4pllv zQMpAgFP|3pr+b7?x(s}C5M`KNjLV~UBF-WA6amTMgj+?G6;q(8ksli$w6kuLNh_A` z@@>96oBiQtiCpTwC0Th(I{dvis>~_MZi6p?teWSY59%0$DSie*-=qg*pIvOJm$e}O z&ZHSdy2CynKvU>u=9?JCkMo631!P8%NNbz}QQqq+ZM*P-xS@xs)n9Yvmwe_p=Vwi) zS$B21w&_oYgAK&2s|Y~AJnc44HQG04^XBzT*R2Ohb?L;@wv8Kv8BcXQi-8^Izn2^s zzv~uMvIm$Pzb?>dt4Vv)b1@^;8MkE5M@4c@IUr;Z^>Lxu@2);|X6P*FQRQ1OkKOOH z{R8LDS9{}AJ$gGT6cA*|^ZFS{r8N4OX(dwF70PyupNCo#GVQ7HSyg{mBJYb zQZ*v5R>16 z->@zT&cYQ2KNdk%T~qY&pQ<4XPc~c+uDQAVQ2CuQlEzC9%P6Ps(T)9YY3CPoN_A}9 zmGYArYW&(C_dD1LbiSs1;l`kjO~XE~KXD!IIUoqNR&{G!KfBqGj&0l}o`DilCfo!J ztTIbsx8kxTdq<=-u8E?e*4xs|c+mLDfB4h}Z)#pH0beXqJW2S(EF+qZ(W@nHfiIxG znDn9zgA?J3kWXns$i_(y#svJB6!rFHfu1ANAn{wx!U5YoL6; zu39R-f|a21Z#qIOq$~!rSXOO-_Fj}SKaETVXk#vJLxx_n%k1yO&AFv!e6w7#m zhyMKRHo|pyqN@ysO(>#R9IArr0>#RWXDD)daDp*aQCkYT(jZp9%zi^#p?rbNwW8EZ zyipjA?UlTKH%~CXWyWiUHhp;u06B_&FgI}fIT==wb5Uv$@E@D~Yvy=QYKeGyqE&0U znEnX&w-UPEuYzW;&?>H(C`iWaqjX6AKT^U5s5>Z@UaoQ3lXsvu>KOiSc>o{J2+C4s zW6EIO8*yy1Bq5=IPdCFzN8=jTwXll0j|=nn@gtRZd(2_}vsvGeJ%F33sxG79g5YY= zJ7dsJ)X0Ya$*z_VGq;?lc1=aJ2VihKak&sG3BZ=7Z;L zwU2sQ*4EW=H(h;mM3Oi&ThH7rZ+)CDh*CkiQ&5#Q>cg++O9oyN4v30gdW||E^NUym z>E^5Y!091L_JPUX-+ZyS!WSCe=6=XgN`2#nozOeF5tGEQGLo7*X+J%uZ1NCMP}M7w zA)}&A^Qupi|D74lpKReSw+AvksB7b9)x-rFhVi)HovJ1b+OevM^JT}}%Adndg^vB| zHjiU(|F8#&*(2*|xH3pZ&NRe^xr%kSFCN56|6Y)O{Stjr5C8FI?vgE_H}2Wk8D9Ax z@cBd5aG>y?hc==Tdrv^QB%D&nr5LJ#+8K%oPltoFW`HqBbS#N}45ea=8KVW;rnlMyyz>d+p{vI0Mn*8BvmG}f?GT6onm$W5Mzc2=$caa^0n#F2b9^DgZx=yrJ)o;?8YQQ_Oprp*WtxTEEeLIq#?v<#xtJ z-zWm?AELMeHlMOzlQE&?-jVkohQUX7<4z2F?C%|E23B{Rz@0o5vEO}OMLWUjx*8i@F&SuUYt{5$ zK2Ejqen4{TZ5qv+a;zCX+)?^C1`m*IUS%!NqG&!NOk+fGqNCuAfGhLJ*_zGMG>8 zauPdahHwR2>49xAex*u4^=PB1<3BICcM1!w1mQ6f&SU)JXrOBJ_qmd6=#FJqCVL`> zP!zj;adpWv>vwt@bA9w)`@+%EdNTevE**G7Ti6#1V7C4_VZ1s*V9=8SET{vjJQH3m z#HX*RsfjhkcH@#QzMZQ|0CnvJ6zgEgx+!s^w(f3k$G#T~QSrd2#XcxjM9T94Uv+18 zPzXjP|0^97f*XxkFiRnNOS*;a$Y7rN_E6v`OnWtb{2K>9r&ukgW@X}(Tg1_;nWHed z>#>V`n|u~W3(?nNP5k3UI*Nx^f5uvo=5nq7P=WiAlX9g{Ms4hygGd93T`T76%KzSe zj=bwOLGbezlJ6EtjNB}g@BjYGiVFWMCGv^)nc;W|VP!@401PCye@Q))x9>S>L&P-r z#YdPs#h4d+1>gS4cp@hs(bM%?b(D^3^C2ra0Q2@;`pk+z*udh|_RB)0MbX`k_R3`>KwmRJzSK_tV0; zhJvNY_Rsq_AdlpuE&~}>2o>IFQb@NEHSYHK)8~C0ac*w?ihS3~mH6nQdhq?Lpj&-H ztuDF4PX-mBLrWf=Fe{&GU>Sv3QcQMz5oJG z8`!~>95Xa%@sLVu50G$?XZpnE4_|U1yKtbArWmf1Qn*!)9v>rQk|R73UsqYTR=t~H zD?vvTkfVyAnoyw;4Tt8^SFV&1Ma`E?s>I9jWKL2lm6uSc(<|97r0cU2DXBt@^mY~y z5k%^V8cxb3I=FP1_-LY3?h^0-2i@SK)1@9UySgoLLQ!hWe9^qVNP0Gz30({(M$goa z!kz|_Mq$T61d2&THDrK{xx*c_THP>hU+$hA2G*b7Idq2<9xnMDjy*4s>C6eWrX+yy3;qh#O0Ex9j18=@Vd$b zl)t#hX)8H7Nn(3UtH`8^XFG{uk6EfE9heR*CNau1 zZWHoT5YDlKmw74@@-F_S+>$xYAFIStgbJ-H(Ye6=1jcGY(awLxK~JO_ix~AtM(ypJ zK7ynwO1Jf?;nyrdYbjx>r;l&kb>I|a0-Z`YJp#BYs)0A2UQCMYz3B&L{#L|T8hfqw zBv8R$Oa7YiWX}>%lVbO@g)wwzWd>^(4nex4fj%t3lOJgF7!5Ip<@dy$uZ^Jz7ZB^c!-EW2B?= zP4;!Ny?YAE8b0?aE;M7G_hRe7@S)oqjyYBNkxMRjE%M$p%=I$}k;Y}gN`U$-B(*Ir zPJGXPGOHP&K6e>YzYqRz<%Ju^m*RN?pF|o9IJCFoiK<@rxwOPL&f}I_sdV$D&H9h^ ztDAb-Jr8APJJPf=gY27)Z(q>ou^lU@S+*m}_Vy0)@kfAelyNv3SSlR&IC?(pb9~w5 z#N6pGJXO>OqN>Q1lr@#Xb_4Qhi(P`qMr6s#0)3jOx|1Z-m;;i&Cdu3O9AUYVn5L`B zTU18KNTEX4h{hT(j+rK=Nu-N_k&`D_i$YRXOZXrf&)FFgV%(Lkmg18=qOL6e?~W=^^3*R!U?zof~LNj|n#!Qg!(=bgQ#00~R5m;L&}P&rHJ1h%)Y)hJLhh zjK-g{xt}R1(HUfY2NQ-3vzD$cetenlS>Ty7e>rJPwhSthB}l38_&~eJCd1d!{zU!Q zabF-rPx-01O(>S^_O(|*h=y{qz+8SF9GX!zmZ?N2a)0u3bd70m&bU$9~wOnoVgsiDFi1=T?=$nHrl`H3APTPCUd|5ompqDK|MuLeUW4@_dzFA`kfQ zIuVKq?XrB;1>AxQVqKcQAj0!w9pvFTIZ{>5v%W&!6MoT`2Wf-vex3u?1I#YhbqkC4I|n9#B70ogNt>I&k)l!EZfp-os&?{B@1Wj z_MU#2GPR~Hf6-lzRelJc+FByN-DZ7;siXCOlk|SBeVsFhYURqcOC~AE|9jNCHTS_2 e;CiXzWcoavK7CJ){^Q8k)E86`;tiRM{{I8~Wy5Cx literal 9605 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