2015-04-03 2 views
-1

У меня есть некоторые данные в R, которые имеют две переменные. Все данные для одной из переменных - это 1 или 2, которые я пытаюсь сортировать.Данные факторинга в R

Когда я пытаюсь data.f<-factor(data) я получаю сообщение об ошибке

«Ошибка в sort.list (у): 'х' должен быть атомарным для '' sort.list

Вы называли «сортировать» по списку? » который я не знаю, что это значит.

Может ли кто-нибудь предложить, как повлиять на мои данные?

+0

никто не сможет вам помочь, если вы не предоставите воспроизводимый пример ваших данных. Потратьте время, чтобы сделать один, это того стоит. инструкции: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – rmuc8

+0

@ r.496 Подумайте о том, чтобы принять ответ, если он решил ваш вопрос. – fotNelton

ответ

2

Следуя вашему довольно короткому описанию и данному сообщению об ошибке, я предполагаю, что ваша проблема заключается в том, что вы вызываете factor на весь фрейм данных data.

Обратите внимание, что коэффициент всегда соответствует переменной . Как вы сказали, у вас есть две переменные в кадре данных, давайте попробуем следующий пример:

> myDataFrame <- data.frame(x = c(1,2,2,2,1,2,2,1), y = 1:8) 
> factor(myDataFrame) 
Error in sort.list(y) : 'x' must be atomic for 'sort.list' 
Have you called 'sort' on a list? 

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

> myFactor <- factor(myDataFrame$x)  # or factor(myDataFrame[,1]) 

затем вы можете использовать myFactor отсортировать фрейм данных следующим образом:

> myDataFrame[order(myFactor),] 
    x y 
1 1 1 
5 1 5 
8 1 8 
2 2 2 
3 2 3 
4 2 4 
6 2 6 
7 2 7 

Наконец, обратите внимание, что на самом деле никакой необходимости фактор здесь. Поскольку ваша переменная уже является числовой, вы можете использовать ее непосредственно, как в

> myDataFrame[order(myDataFrame$x),] 

, который даст тот же результат.

Смежные вопросы