2015-01-16 5 views
-2

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

id type count 
1 typeA 10 
1 typeB 20 
1 typeC 30 
2 typeA 15 
2 typeB 15 
3 typeC 20 

Что будет код R, который будет производить в следующей таблице:

id type_A type_B type_C 
1 10  20  30 
2 15  15  na 
3 na  na  20 
+1

Это самая простая проблема с переформатированием, и ее можно решить множеством тривиальных способов, например, 'library (reshape2); dcast (df, id ~ type, value.var = "count") ' –

+0

См. также [здесь] (http://stackoverflow.com/questions/9617348/reshape-three-column-data-frame-to-matrix) –

+0

В этом случае он не работает, так как ему нужна функция агрегации (предполагается, что длина по умолчанию). –

ответ

4

Вы можете использовать tidyr:

library(tidyr) 
spread(dat, type, count) 

# id typeA typeB typeC 
# 1 1 10 20 30 
# 2 2 15 15 NA 
# 3 3 NA NA 20 

где dat это имя вашего фр данных AME.

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