Domanda
mi sto dati da una tabella di MySQL che ha 2 colonne (idDoc, tag) che descrivono che il documento ha un determinato tag. Quando uso la cornice di dati con
ddply(tags,1)
Il mio obiettivo è quello di tag gruppo di id, così dicono che faccio le seguenti operazioni
> x=c(1,1,2,2)
> y=c(4,5,6,7)
> data.frame(x,y)
x y
1 1 4
2 1 5
3 2 6
4 2 7
Il mio output desiderato sarebbe forse una lista di liste (o qualsiasi altro risultato) che otterrebbe
1 -> c(4,5)
2 -> c(6,7)
Saluti
Soluzione
Questa è una specie di salto nel buio, da quando dici che vuoi un 'associazione', che in realtà non descrive con precisione qualsiasi struttura di dati R particolare, quindi non è chiaro quale forma si desidera che l'uscita da prendere.
Ma una R possibilità di base sarebbe di usare semplicemente split
:
split(tags$tag, tags$idDoc)
che dovrebbe restituito un elenco di nome in cui i nomi vengono da idDoc
e ogni elemento della lista è il tag associati con quel valore idDoc
. Ci saranno duplicati, però. Quindi forse questo dovrebbe funzionare meglio:
tapply(tags$tag,tags$idDoc,FUN = unique)
, che dovrebbe restituire un elenco di tag Unique per ogni idDoc
.
( A cura : Non c'è bisogno per la funzione anonima, solo bisogno di passare unique
).