bi_gem <- function(n_stkp,betr_niveau,datatype,mijndatakolom,gem_stkp,stafw_stkp,toon) {
if(all(n_stkp == as.integer(n_stkp)) & n_stkp >=2) { 
  if(betr_niveau >= 0 & betr_niveau < 1) {
    if(datatype %in% 1:2) {            
      if(toon %in% 1:3) {   
        library(readxl)
        library(BSDA)   
        library(dplyr, warn.conflicts = FALSE)
        library(glue)
        library(gt)
        library(gtExtras) 
        nivperc <- trunc(betr_niveau*10^4)/10^2
        if (datatype == 1) { 
          skip <- 1    
          if(mijndatakolom %in% LETTERS[1:26]) {    
            mdat <- read_excel("xcl/mijndata.xlsx", range = cell_cols(mijndatakolom))
            if(!length(mdat) == 0 ) {
              x <- unlist(as.vector(mdat[,1]), use.names = FALSE)
              if(!( any(is.na(x)) | !is.numeric(x) | length(x) != n_stkp )) {
                skip <- 0         
                t_test_bi <- t.test(x, conf.level = betr_niveau)
                bi_ll <- t_test_bi$conf.int[1]
                bi_ul <- t_test_bi$conf.int[2]
                ttestlbl <- paste0("t.test(x, conf.level = ", as.character(nivperc/100),")")
              }else{cat(paste0("het aantal data in kolom \"", mijndatakolom, "\" verschilt van \nde opgegeven steekproefgrootte in n_stkp \nof \nde data in kolom \"", mijndatakolom, "\" zijn niet goed ingebracht \n \nPas aan. Lees de handleiding: \"Data bij toetsen en \nbij betrouwbaarheidsintervallen: van Excel naar R\"." ) ) }
            }else{cat(paste0("kolom \"", mijndatakolom, "\" in mijndata.xlsx is leeg \n \nPas aan. Lees de handleiding: \"Data bij toetsen en \nbij betrouwbaarheidsintervallen: van Excel naar R\".")) }
          }else{cat("in mijndatakolom <- ...  tik je een \nHOOFDLETTER TUSSEN AANHALINGSTEKENS \nLetters tussen A en Z. \nPas aan.") }
        }else if (datatype == 2) {
          skip <- 1    
          if(stafw_stkp > 0) {  
            skip <- 0 
            xbar1 <- round(gem_stkp, 2)
            sd1 <- round(stafw_stkp, 2)
            t_test_bi <- tsum.test(mean.x = gem_stkp, s.x = stafw_stkp, n.x = n_stkp, conf.level = betr_niveau)
            bi_ll <- unlist(as.vector( t_test_bi$conf.int [1]), use.names = FALSE)
            bi_ul <- unlist(as.vector( t_test_bi$conf.int [2]), use.names = FALSE) 
            ttestlbl <- paste0("tsum.test(mean.x = ",as.character(xbar1),", s.x = ",as.character(sd1),", n.x = ",as.character(n_stkp),", conf.level = ", as.character(nivperc/100),")")
          }else{cat("Tik een positief getal voor de \nstandaardafwijking van de steekproefdata \nPas aan.") } }  
        if (skip == 0){options(scipen = 999)
          bi_mean <- (bi_ul + bi_ll)/2
          bi_emargin <- (bi_ul - bi_ll)/2
          df <- data.frame(bi_ll, bi_ul, bi_mean, bi_emargin)
          bi_tbl <- df |> gt() |> 
            cols_label (bi_ll = html("ondergrens"),
                        bi_ul = html("bovengrens"),     
                        bi_emargin = html("foutenmarge"),     
                        bi_mean = html("x&#772;") )|>
            fmt_number(columns = c(bi_ll, bi_mean, bi_ul, bi_emargin),
                       use_seps = FALSE, decimals = 2) |> 
            tab_style(style = cell_text(align = "center"),
                      locations = list( cells_column_labels(), cells_body())) |> 
            tab_options(data_row.padding = px(0.5),
                        heading.subtitle.font.size = 16) |>
            gt_highlight_cols(c(bi_mean, bi_emargin), fill = "lightblue",
                              alpha = 0.4, font_weight = "normal") 
          if(datatype == 1){
            bi_tbl <- bi_tbl |> tab_header(title = html(glue("{nivperc} %  betrouwbaarheidsinterval voor  𝜇<br> <font size=3> steekproef n = {n_stkp}               dataset in kolom {mijndatakolom} </font>  ")) )
          }else{
            bi_tbl <- bi_tbl |> tab_header(title = html(glue("{nivperc} %  betrouwbaarheidsinterval voor  𝜇<br> <font size=3> steekproef n = {n_stkp}               data: x&#772; = {xbar1} en s = {sd1} </font>  ")) ) }
          if(toon == 3){cat(ttestlbl)
            print(t_test_bi)
            bi_tbl
          }else if(toon ==2) {cat(ttestlbl)
            t_test_bi
          }else if(toon ==1) {bi_tbl} }
      }else{cat("Voor toon <-... mag je alleen maar \nhet cijfer 1 of 2 of 3 invullen. Pas aan.")  }
    }else{cat("Voor datatype <-... mag je alleen maar \nhet cijfer 1 of 2 invullen. Pas aan.") }
  }else{cat("Een betrouwbaarheidsniveau ligt tussen 0 en 1. \nBovendien is een 100 % betrouwbaarheidsniveau niet zinvol \nwant dan krijg je (-∞ , +∞) als betrouwbaarheidsinterval. \nPas dus aan zodat  0 ≤ betr_niveau < 1.") }
}else{cat("Tik een geheel getal groter dan 1 voor \nde steekproefgrootte: n_stkp. Pas aan.") }
} 