DF = data.frame(data=c(8, 12, 97, 103, 19, 21, 25, 27, 29, 30), group=c(rep(1, 4), rep(2, 6))) print(DF) DF$data_rank = order(DF$data) print(DF) ## Wilcoxon rank-sum test: ## group_1_sum = sum(DF$data_rank[DF$group==1]) group_2_sum = sum(DF$data_rank[DF$group==2]) print(c(group_1_sum, group_2_sum)) ## Median test: ## med = median(DF$data) print(med) DF$above_median = FALSE DF$above_median[DF$data > med] = TRUE print(DF) T = table(DF$group, DF$above_median) rownames(T) = c('group_1', 'group_2') colnames(T) = c('below_median', 'above_median') print(T)