Ваша проблема в том, что в ваших данных отсутствуют значения. Таким образом, среднее значение для всех столбцов - NA. Чтобы игнорировать пропущенные значения при расчете среднего, вы можете сделать doo
df_ratios <- read.csv(url, header=T)
s2 <- with(df_ratios, reorder(region, -student_ratio, mean, na.rm=TRUE))
with(df_ratios, boxplot(student_ratio~s2))