Когда был создан фрейм данных, вероятно, в stat0
было несколько нечисловых символов, поэтому столбец был преобразован в фактор.Когда вы сортируете по фактору, вы сортируете по базовым уровням кодов, которые будут присваиваться в порядке появления этих значений, поэтому порядок не меняется.
Решение состоит в том, чтобы преобразоватьэтот столбец должен быть числовым.
Вы можете преобразовать этот коэффициент в числовой, как вы и предполагали, используя:
factor_to_numeric <- function(f)
{
as.numeric(levels(f))[as.integer(f)]
}
sds45$stat0 <- factor_to_numeric(sds45$stat0)
Это также также хорошоИдея очень важно проверить ваш набор данных, чтобы попытаться найти эти нечисловые символы.Если этот столбец содержит грязные данные, остальная часть вашего набора данных также может нуждаться в очистке.