R: Расширение R-фактора в фиктивные столбцы для каждого уровня фактора

У меня довольно большой фрейм данных в R с двумя столбцами. Я пытаюсь сделать из Code столбец (factor наберите с 858 уровнями) фиктивные переменные. Проблема в том, что R Studio всегда зависал, когда я пытался это сделать.

> str(d)
'data.frame':   649226 obs. of  2 variables:
 $ User: int  210 210 210 210 269 317 317 317 317 326 ...
 $ Code      : Factor w/ 858 levels "AA02","AA03",..: 164 494 538 626 464 496 435 464 475 163 ... 

User столбец не уникален, это означает, что может быть несколько строк с одинаковыми User, Не имеет значения, если в итоге количество строк остается одинаковым или строки с одинаковыми User объединены в одну строку с несколькими непустыми столбцами с количеством Codes.

Я нашел пару решений, которые работают для меньшего набора данных, но не для моего.

Было бы здорово, если бы вы могли порекомендовать мне какой-то метод, который быстра и работает для данных такого типа.

Спасибо!

1 ответ

Решение

Это сработало для меня отлично:

library(reshape2)
m <- acast(data = d, User ~ Code)

Единственное, что было произведено NAс, а не 0с, но это можно легко изменить с помощью этого:

m[is.na(m)] <- 0
Другие вопросы по тегам