below is my function and is working fine but i want to have column name to have TT1 should be displayed like "TT1 (n= 11)" due to coersion i am not able to update . how can i do that
data <- data.frame(col1= c(2,1,3,2,0,4,2,3,1,5,4),
col2= c(1,2,2,1,4,3,2,4,0,5,0),
col3= c(1,1,0,3,2,4,1,0,1,3,5))
freq<-function(data,var){
t0<-table(data[[var]])
t0<-as.data.frame(t0)
t0
}
var_name <- "TT1"
var_list<-c("col1", "col2", "col3")
data<-data[unlist(var_list)]
total_column<-NA^!rowSums(!is.na(data[,1:ncol(data)]))
lst1 <- lapply(names(data[,1:ncol(data)]), function(x) freq(data,x))
lst2 <- lst1[!sapply(lst1, is.null)]
tab1<-Reduce(rbind,lst2)
tab<-tab1%>% mutate(Var1=as.character(Var1),
Freq=as.numeric(Freq),
N=sum(total_column,na.rm = TRUE))%>%
mutate(UQ(rlang::sym(var_name)) := Freq*100/N)%>%
select(Var1,!!var_name,N)
the output should be look like below