Создайте несколько фиктивных переменных из одной строковой переменной

Я попробовал почти все изэтот похожий вопрос, но я не могу получить результаты, которые все остальные, кажется, получают. Это моя проблема:

У меня есть такой фрейм данных, в котором перечислены оценки, с которыми работает каждый учитель:

> profs <- data.frame(teaches = c("1st", "1st, 2nd",
                                  "2nd, 3rd",
                                  "1st, 2nd, 3rd"))
> profs
        teaches
1           1st
2      1st, 2nd
3      2nd, 3rd
4 1st, 2nd, 3rd

Я искал решения, чтобы сломатьteaches переменная в столбцы, вот так:

  teaches1st teaches2nd teaches3rd
1          1          0          0
2          1          1          0
3          0          1          1
4          1          1          1

Я понимаю это решение с участиемsplitstackshape библиотека и, видимо, устарелаconcat.split.expanded функция должна делать именно то, что я хочу, учитывая объяснение ответчика. Тем не менее, я не могу достичь таких же результатов:

> concat.split.expanded(profs, "teaches", fill = 0, drop = TRUE)
Fehler in seq.default(min(vec), max(vec)) : 
  'from' cannot be NA, NaN or infinite

С помощьюcSplit, который я понял, заменяет «большинство более ранних функций concat.split *», я получаю это:

> cSplit(profs, "teaches")
   teaches_1 teaches_2 teaches_3
1:       1st        NA        NA
2:       1st       2nd        NA
3:       2nd       3rd        NA
4:       1st       2nd       3rd

Я пытался использоватьcSplitпомогает и настраивает каждый из этих параметров, но я просто не могу получить это разделение. Я ценю любую помощь.

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

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