now its not giving any error but its not giving any solution i guess its because of double (value)
dataa<-data.frame(
aa = c("q","r","y","v","g","y","d","s","n","k","y","d","s","t","n","u","l","h","x","c","q","r","y","v","g","y","d","s","n","k","y","d","s","t","n","u","l","h","x","c"),
col1=c(1,2,3,2,1,2,3,4,4,4,5,3,4,2,1,2,5,3,2,1,2,4,2,1,3,2,1,2,3,1,2,3,4,4,4,1,2,5,3,5),
col2=c(2,1,1,7,4,1,2,7,5,7,2,6,2,2,6,3,4,3,2,5,7,5,6,4,4,6,5,6,4,1,7,7,2,7,7,2,3,7,2,4)
)
dat1 = dataa
var1 = "col1"
var2 = "col2"
#crosstab_sum <- function(dat1,var1,var2){
var1 <- rlang::parse_expr(var1)
var2 <- rlang::parse_expr(var2)
dat1 = dat1 %>% select(!!var1,!!var2)
var_lab(dat1[[1]]) <- ""
var_lab(dat1[[2]]) <- ""
tab1 <- cro_cpct(dat1[[1]],dat1[[2]])
tab1 <- as.data.frame(tab1)
tab1[which(tab1[,1]=="#Total cases"),1] <- "N"
tab1[is.na(tab1)] <- 0
tab1 <- tab1 %>% mutate_if(is.numeric,round,digits=1)
tab1 <- tab1 %>% format(is.numeric(tab1),nsmall = 1)
tab1 <-tab1 %>%
mutate(across(where(is.numeric),~if_else(last(.) %in% c(3,4,5),"---", as.character(.))))
tab1[nrow(tab1), ] <- ifelse(tab1[nrow(tab1), ] %in% c(3, 4, 5), "--", tab1[nrow(tab1), ])
tab1[-nrow(tab1), -1] <- sapply(tab1[-nrow(tab1), -1], function(x) paste(x, "%"))
tab1 <- flextable::flextable(tab1)
tab1
column are still showing values....am i doing something wrong...??
might be working for you