estoy usando el "por" función en R para picar una trama de datos y aplicar una función a diferentes partes, así:Convertir a "por" objeto de una trama de datos en I
pairwise.compare <- function(x) {
Nright <- ...
Nwrong <- ...
Ntied <- ...
return(c(Nright=Nright, Nwrong=Nwrong, Ntied=Ntied))
}
Z.by <- by(rankings, INDICES=list(rankings$Rater, rankings$Class), FUN=pairwise.compare)
el resultado (Z.by) se ve algo como esto:
: 4
: 357
Nright Nwrong Ntied
3 0 0
------------------------------------------------------------
: 8
: 357
NULL
------------------------------------------------------------
: 10
: 470
Nright Nwrong Ntied
3 4 1
------------------------------------------------------------
: 11
: 470
Nright Nwrong Ntied
12 4 1
lo que me gustaría es tener este resultado convertida en una trama de datos (con las entradas NULL que no están presentes) por lo que se ve así:
Rater Class Nright Nwrong Ntied
1 4 357 3 0 0
2 10 470 3 4 1
3 11 470 12 4 1
¿Cómo hago eso?
Eso casi hace lo que yo quiero, me sale un cuadro de datos con las columnas Nright, Nwrong y Ntied, pero no produce las columnas Evaluador y de clase. –
Sugeriría cambiar su función 'pairwise.compare' para devolver esos dos campos. De lo contrario, tendrá que usar una rutina 'lapply' (o' plyr') para obtener los nombres y valores de la lista (que es un paso adicional). – Shane
Parece que plyr es en realidad una solución más simple que en este caso, simplemente no sabía sobre ese paquete antes. –