Sto utilizzando la funzione di R "da" per tritare un frame di dati e applicare una funzione di diverse parti, in questo modo:Convertire un "con" oggetto ad un frame di dati in R
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)
il risultato (Z.by) simile a questa:
: 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
Quello che vorrei è avere questo risultato trasformato in un frame di dati (con le voci NULL non presente) in modo che assomiglia a questo:
Rater Class Nright Nwrong Ntied
1 4 357 3 0 0
2 10 470 3 4 1
3 11 470 12 4 1
Come faccio?
che quasi fa quello che voglio, ho un frame di dati con le colonne Nright, Nwrong e Ntied, ma non produce le colonne Rater e classe. –
Suggerisco di cambiare la funzione 'pairwise.compare' per restituire questi due campi. Altrimenti dovrai usare una routine 'lapply' (o' plyr') per ottenere sia i nomi delle liste che i valori (che è un passo in più). – Shane
Sembra che plyr sia in realtà una soluzione più semplice che in questo caso, non sapevo prima di quel pacchetto. –