Преобразуйте фрейм данных в широкую форму
Данные содержат две переменные: идентификатор и класс. Каждый идентификатор может иметь несколько записей для каждой оценки.
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")