Crear varias variables ficticias a partir de una variable de cadena

He intentado casi todo, desdeesta pregunta similar, pero no puedo obtener los resultados que todos los demás parecen estar obteniendo. Este es mi problema:

Tengo un marco de datos como este, que enumera las calificaciones con las que trabaja cada maestro:

> 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

He estado buscando soluciones para romper elteaches variable en columnas, así:

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

Entiendo esta solucion involucrando elsplitstackshape biblioteca y el aparentemente en desusoconcat.split.expanded Se supone que la función debe hacer exactamente lo que quiero, dada la explicación del respondedor. Sin embargo, parece que no puedo alcanzar los mismos resultados:

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

UtilizandocSplit, que entendí reemplaza a "la mayoría de las funciones anteriores de concat.split *", obtengo esto:

> 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

He intentado usarcSplitAyuda y ajusta cada uno de esos parámetros, pero simplemente no puedo obtener esa división. Agradezco cualquier ayuda.

Respuestas a la pregunta(4)

Su respuesta a la pregunta