# Sys.setenv(GITHUB_PAT = "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")
# if (!require("remotes")) install.packages("remotes")
# remotes::install_github("insightsengineering/scda@*release")
# 
# 
# Sys.setenv(GITHUB_PAT = "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")
# if (!require("remotes")) install.packages("remotes")
# remotes::install_github("insightsengineering/scda.2022@*release")
library(scda)
## 
library(tern)
## Loading required package: rtables
## Loading required package: formatters
## Loading required package: magrittr
## Registered S3 method overwritten by 'tern':
##   method   from 
##   tidy.glm broom
library(dplyr)
## 
## 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(flextable)
# ls_synthetic_cdisc_data()

adsl <- synthetic_cdisc_dataset("latest", "adsl")
adqs <- synthetic_cdisc_dataset("latest", "adqs")

# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.
adsl <- df_explicit_na(adsl)
adqs <- df_explicit_na(adqs)

adqs_multi <- filter(adqs, AVISIT == "WEEK 1 DAY 8")
# Define the split function
split_fun <- drop_split_levels

l <- basic_table() %>%
  split_cols_by("ARMCD", ref_group = "ARM A") %>%
  split_rows_by("PARAMCD",
    split_fun = split_fun,
    label_pos = "topleft",
    split_label = obj_label(adqs_multi$PARAMCD)
  ) %>%
  summarize_ancova(
    vars = "CHG",
    variables = list(
      arm = "ARMCD",
      covariates = c("BASE", "STRATA1")
    ),
    conf_level = 0.95,
    var_labels = "Adjusted mean"
  )

result <- build_table(
  lyt = l,
  df = adqs_multi,
  alt_counts_df = adsl
)


result
## Parameter Code                     ARM A       ARM B           ARM C    
## ------------------------------------------------------------------------
## BFIALL                                                                  
##   Adjusted mean                                                         
##     n                               134         134             132     
##     Adjusted Mean                  4.47        6.33            4.02     
##     Difference in Adjusted Means               1.85            -0.46    
##       95% CI                               (-0.14, 3.85)   (-2.45, 1.54)
##       p-value                                 0.0679          0.6539    
## FATIGI                                                                  
##   Adjusted mean                                                         
##     n                               134         134             132     
##     Adjusted Mean                  5.42        4.83            4.56     
##     Difference in Adjusted Means               -0.59           -0.86    
##       95% CI                               (-2.58, 1.41)   (-2.87, 1.15)
##       p-value                                 0.5644          0.4026    
## FKSI-FWB                                                                
##   Adjusted mean                                                         
##     n                               134         134             132     
##     Adjusted Mean                  4.29        3.51            3.06     
##     Difference in Adjusted Means               -0.79           -1.24    
##       95% CI                               (-2.71, 1.14)   (-3.17, 0.69)
##       p-value                                 0.4221          0.2088    
## FKSI-TSE                                                                
##   Adjusted mean                                                         
##     n                               134         134             132     
##     Adjusted Mean                  4.70        3.84            4.45     
##     Difference in Adjusted Means               -0.86           -0.25    
##       95% CI                               (-2.80, 1.09)   (-2.20, 1.70)
##       p-value                                 0.3858          0.8007    
## FKSIALL                                                                 
##   Adjusted mean                                                         
##     n                               134         134             132     
##     Adjusted Mean                  5.03        5.82            6.44     
##     Difference in Adjusted Means               0.79            1.42     
##       95% CI                               (-1.17, 2.76)   (-0.56, 3.39)
##       p-value                                 0.4288          0.1591

https://insightsengineering.github.io/tlg-catalog/stable/tables/efficacy/aovt01.html