значения не соответствуют уровню в R

r dataframe r-factor

404 просмотра

1 ответ

32 Репутация автора

несколько столбцов данного фрейма данных являются векторами факторного уровня, для примера возьмем один из них:

[4661] 12.7          13.2          10.1          12.3         
[4665] Not Available 12.7          Not Available Not Available
[4669] Not Available Not Available Not Available 11.1         
[4673] 9.9           9             Not Available 9.7          
[4677] 8.9           10.1          11.7          13           
[4681] Not Available 11.5          Not Available Not Available
[4685] 12.3          11.2          Not Available 11.1         
[4689] 10.4          Not Available Not Available Not Available
[4693] 11.5          Not Available Not Available Not Available
[4697] Not Available Not Available 12            Not Available
[4701] Not Available Not Available Not Available Not Available
[4705] Not Available Not Available
106 Levels: 10 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 ... Not Available

Меня раздражает, что все время говорят, что 106 уровней начинаются с 10, а затем 10,1, но на самом деле есть много значений ниже 10, как показано в приведенном выше списке.

Как это исправить, и чтобы уровни автоматически соответствовали всем значениям? Благодарю.

Автор: user6606453 Источник Размещён: 19.07.2016 04:33

Ответы (1)


1 плюс

72694 Репутация автора

Решение

Вы можете изменить порядок на числовой порядок с некоторым factorповторным

x <- factor(c(10,10.1,10.2,9,8,1,"Not available"))
levels(x)
#[1] "1"             "10"            "10.1"          "10.2"         
#[5] "8"             "9"             "Not available"


factor(x, levels=levels(x)[order(as.numeric(as.character(levels(x))),na.last=TRUE)])
#[1] 10            10.1          10.2          9             8             1             Not available
#Levels: 1 8 9 10 10.1 10.2 Not available

Возможно, вы должны просто использовать эти данные как числовые, например:

as.numeric(as.character(x))
#[1] 10.0 10.1 10.2  9.0  8.0  1.0   NA
Автор: thelatemail Размещён: 19.07.2016 04:57
Вопросы из категории :
32x32