Erstelle mehrere Dummy-Variablen aus einer String-Variablen

Ich habe so ziemlich alles aus @ versucdiese ähnliche Frage, aber ich kann nicht die Ergebnisse bekommen, die alle anderen zu bekommen scheinen. Das ist mein Problem

Ich habe einen Datenrahmen wie diesen und liste die Noten auf, mit denen jeder Lehrer arbeitet:

> 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

Ich habe nach Lösungen gesucht, um die @ zu brechteaches Variable in Spalten, wie folgt:

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

Ich verstehe diese Lösung mit demsplitstackshape Bibliothek und die anscheinend veralteteconcat.split.expandedie @ -Funktion soll genau das tun, was ich will, unter Berücksichtigung der Erklärung des Antwortenden. Ich kann jedoch nicht dieselben Ergebnisse erzielen:

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

UsingcSplit, von dem ich verstanden habe, dass es "die meisten früheren concat.split * -Funktionen" ersetzt, erhalte ich Folgendes:

> 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

Ich habe versucht mitcSplits Hilfe und Optimierung aller dieser Parameter, aber ich kann diese Aufteilung einfach nicht erreichen. Ich freue mich über jede Hilfe.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage