У меня есть такой фрейм данных:
group student exam_passed subject
A 01 Y Math
A 01 N Science
A 01 Y Japanese
A 02 N Math
A 02 Y Science
B 01 Y Japanese
C 02 N Math
Я бы хотел получить следующий результат:
group student exam_passed subject_Math subject_Science subject_Japanese
A 01 Y 1 0 0
A 01 N 0 1 0
A 01 Y 0 0 1
A 02 N 1 0 0
A 02 Y 0 1 0
B 01 Y 0 0 1
C 02 N 1 0 0
Вот кадр тестовых данных:
df <- data.frame(
group = c('A', 'A', 'A', 'A', 'A', 'B', 'C'),
student = c('01', '01', '01', '02', '02', '01', '02'),
exam_pass = c('Y', 'N', 'Y', 'N', 'Y', 'Y', 'N'),
subject = c('Math', 'Science', 'Japanese', 'Math', 'Science', 'Japanese', 'Math')
)
Я попытался выполнить цикл, однако исходные данные слишком велики для обработки, и
mltools::one_hot(df, col = 'subject')
также не работает из-за этой ошибки:
Error in `[.data.frame`(dt, , cols, with = FALSE) :
unused argument (with = FALSE)
Может ли кто-нибудь помочь мне с этим?Спасибо!