2013-04-24 5 views
0

У меня есть две фактор-переменные в кадре данных, а конечная цель - объединить оба столбца, чтобы найти список уникальных факторов обоих столбцов, объединенных (некоторые из факторов в переменной один повторяются в переменная два). Для этого мне нужен вектор длины 2n, чтобы выполнить «уникальную» функцию (уложенный вектор в коде ниже). Однако у меня возникают проблемы с объединением этих двух векторов с использованием функции «стек».Условные векторы векторов в R

Я не понимаю сообщение об ошибке Я получаю вторую строку. Я знаю, что это должно быть так просто, но я просто не вижу этого! Если кто-то знает или имеет более элегантный способ решения этой проблемы, ответьте!

+3

Если бы вы использовали 'объединенные <-data.frame (x, y, strAsAsFactors = FALSE)', вам это удалось бы. –

ответ

3

Ответ лежит в файле справки на ?stack

Note that ‘stack’ applies to _vectors_ (as determined by 
‘is.vector’): non-vector columns (e.g., factors) will be ignored 
(with a warning as from R 2.15.0). 

> is.vector(factor("a")) 
[1] FALSE 

Try:

stacked <- stack(lapply(combined,as.character)) 
stacked 

    values ind 
1  a x 
2  a x 
3  a x 
4  b x 
5  b x 
6  b x 
... 

..or, как @Dwin указывает, вы могли бы создать combined быть символов вместо факторов в первое место, указав stringsAsFactors=FALSE в своем data.frame звоните.

+0

Извините, DWin сделал мою мысль намного лучше. – joran

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