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

È stato utile?

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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top