Estoy tratando de replicar una tabla utilizada a menudo en las estadísticas oficiales, pero hasta ahora no ha tenido éxito. Dada una trama de datos como éste:tabla de frecuencia con varias variables en R
d1 <- data.frame(StudentID = c("x1", "x10", "x2",
"x3", "x4", "x5", "x6", "x7", "x8", "x9"),
StudentGender = c('F', 'M', 'F', 'M', 'F', 'M', 'F', 'M', 'M', 'M'),
ExamenYear = c('2007','2007','2007','2008','2008','2008','2008','2009','2009','2009'),
Exam = c('algebra', 'stats', 'bio', 'algebra', 'algebra', 'stats', 'stats', 'algebra', 'bio', 'bio'),
participated = c('no','yes','yes','yes','no','yes','yes','yes','yes','yes'),
passed = c('no','yes','yes','yes','no','yes','yes','yes','no','yes'),
stringsAsFactors = FALSE)
Me gustaría crear una tabla que muestra por año, el número de todos los estudiantes (todos) y los que son mujeres, quienes participaron y los que pasaron. Tenga en cuenta "de qué" a continuación se refiere a todos los estudiantes.
Una tabla que tengo en mente se vería así:
cbind(All = table(d1$ExamenYear),
participated = table(d1$ExamenYear, d1$participated)[,2],
ofwhichFemale = table(d1$ExamenYear, d1$StudentGender)[,1],
ofwhichpassed = table(d1$ExamenYear, d1$passed)[,2])
Estoy seguro de que hay una mejor manera de este tipo de cosas en R.
Nota: He visto soluciones de látex, pero no lo uso, esto funcionará para mí, ya que necesito exportar la tabla en Excel.
Gracias de antemano
gracias. Muchas gracias. Definitivamente voy a aprender plyr. – user1043144
Buena respuesta, pero un minuto después que @csgillespie. –
@Jilber, creo que quisiste decir * un minuto antes *. No debería haber "sino" en su comentario. – A5C1D2H2I1M1N2O1R2T1