Преобразуйте фрейм данных в широкую форму

Данные содержат две переменные: идентификатор и класс. Каждый идентификатор может иметь несколько записей для каждой оценки.

dat <- data.frame(id = c(1,1,1,2,2,2,2,3,3,4,5,5,5),
                  grade = c("a", "b", "c", "a", "a", "b", "b", "d", "f", "c", "a", "e", "f"))

Я хочу преобразовать данные в широкую форму так, чтобы у каждого идентификатора была только одна запись, и каждый уникальный класс становился одним столбцом. Значение каждого столбца равно 0 или 1, в зависимости от оценок для каждого идентификатора.

Окончательный набор данных выглядит так:

id  a   b   c   d   e   f
1   1   1   1   0   0   0
2   1   1   0   0   0   0
3   0   0   0   1   0   1
4   0   0   1   0   0   0
5   1   0   0   0   1   1

Я попробовал это, но не повезло.

  n.dat <- reshape(dat, timevar = "grade",idvar = c("id"),direction = "wide") 

Ответы на вопрос(1)

Ваш ответ на вопрос