library(purrr)
#> Warning: package 'purrr' was built under R version 4.1.3
library(nicethings)
library(dplyr)
#> Warning: package 'dplyr' was built under R version 4.1.3
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(glue)
dat <- data.frame(prevalence = c(0.005, 0.01, 0.05, seq(0.1, 0.9, 0.05)))
dat
#> prevalence
#> 1 0.005
#> 2 0.010
#> 3 0.050
#> 4 0.100
#> 5 0.150
#> 6 0.200
#> 7 0.250
#> 8 0.300
#> 9 0.350
#> 10 0.400
#> 11 0.450
#> 12 0.500
#> 13 0.550
#> 14 0.600
#> 15 0.650
#> 16 0.700
#> 17 0.750
#> 18 0.800
#> 19 0.850
#> 20 0.900
ors <- seq(1.25, 5, 0.25)
ors
#> [1] 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75
#> [16] 5.00
dat <- ors %>%
map( ~ dat %>%
select(1) %>%
nice_sampsi_cc(pi_0 = ., or = .x, power = 90, alpha = 5) %>%
set_names(glue("OR >= {.x}"))
) %>%
bind_cols(dat, .)
dat
#> prevalence OR >= 1.25 OR >= 1.5 OR >= 1.75 OR >= 2 OR >= 2.25 OR >= 2.5
#> 1 0.005 152244 42332 20714 12722 8828 6606
#> 2 0.010 76596 21320 10442 6418 4456 3338
#> 3 0.050 16112 4522 2230 1380 964 726
#> 4 0.100 8602 2438 1214 756 532 404
#> 5 0.150 6142 1758 882 554 394 300
#> 6 0.200 4952 1432 724 460 328 252
#> 7 0.250 4274 1248 638 406 292 226
#> 8 0.300 3860 1138 586 376 272 212
#> 9 0.350 3602 1072 556 360 262 206
#> 10 0.400 3454 1038 542 354 260 204
#> 11 0.450 3386 1026 542 356 262 208
#> 12 0.500 3390 1038 552 364 270 216
#> 13 0.550 3464 1068 572 382 284 228
#> 14 0.600 3612 1124 608 406 306 246
#> 15 0.650 3852 1210 658 444 334 270
#> 16 0.700 4220 1338 732 496 376 306
#> 17 0.750 4778 1528 842 574 438 356
#> 18 0.800 5660 1826 1014 696 532 436
#> 19 0.850 7180 2336 1306 902 694 570
#> 20 0.900 10284 3372 1898 1318 1018 840
#> OR >= 2.75 OR >= 3 OR >= 3.25 OR >= 3.5 OR >= 3.75 OR >= 4 OR >= 4.25
#> 1 5204 4252 3572 3066 2676 2368 2120
#> 2 2632 2152 1808 1552 1356 1200 1076
#> 3 576 472 400 344 302 268 242
#> 4 322 266 226 196 174 154 140
#> 5 242 200 172 150 132 120 108
#> 6 204 170 146 128 114 104 94
#> 7 184 154 134 118 106 96 88
#> 8 174 146 128 112 100 92 84
#> 9 168 144 124 110 100 92 84
#> 10 168 144 126 112 102 94 86
#> 11 172 148 130 116 106 98 90
#> 12 180 154 136 122 112 104 96
#> 13 190 164 146 132 120 112 104
#> 14 206 178 160 144 132 122 114
#> 15 228 198 178 160 148 138 130
#> 16 258 226 202 184 170 158 150
#> 17 304 266 240 218 202 188 178
#> 18 372 328 296 270 250 234 222
#> 19 488 432 390 358 332 312 294
#> 20 722 640 580 532 496 466 442
#> OR >= 4.5 OR >= 4.75 OR >= 5
#> 1 1916 1746 1602
#> 2 972 886 814
#> 3 220 202 186
#> 4 128 118 108
#> 5 100 92 86
#> 6 86 80 74
#> 7 80 76 70
#> 8 78 74 68
#> 9 78 74 70
#> 10 80 76 72
#> 11 84 80 76
#> 12 90 86 80
#> 13 98 92 88
#> 14 108 102 98
#> 15 122 116 110
#> 16 142 134 128
#> 17 168 162 154
#> 18 210 202 194
#> 19 280 268 258
#> 20 422 404 390