Ho dati che mostrano quali clienti hanno acquistato determinati articoli. Possono acquistare un oggetto più volte. Quello di cui ho bisogno è una tabella che mostri tutte le possibili combinazioni di articoli a coppie insieme al numero unico di clienti che hanno acquistato quella combinazione (la diagonale del tavolo sarà solo il numero univoco di persone che acquistano ciascun articolo).Crea tabella con tutte le coppie di valori da una colonna in R, contando valori univoci
Ecco un esempio:
item <- c("h","h","h","j","j")
customer <- c("a","a","b","b","b")
test.data <- data.frame(item,customer)
Ecco la test.data:
item customer
h a
h a
h b
j b
j b
Risultato necessario - una tabella con gli articoli come nomi di riga e di colonna, con i conti di clienti unici acquistando la coppia all'interno del tavolo. Quindi, 2 clienti hanno acquistato l'articolo h, 1 hanno acquistato entrambi gli articoli h e j e 1 l'elemento acquistato j.
item h j
h 2 1
j 1 1
Ho provato con la funzione di tabella, melt
/cast
, ecc, ma nulla mi fa i conteggi di cui ho bisogno all'interno della tabella. Il mio primo passo è utilizzare unique()
per sbarazzarsi di righe duplicate.
si parla di 3 clienti, ma vedo solo 2 nel vostro 'test. data'. – Jaap
Non sarà possibile estenderlo oltre due elementi. Forse dovresti considerare un altro modo di rappresentarlo. – Frank
@Jaap, il cliente b ha acquistato entrambi gli articoli h e j, quindi sono inclusi in tutte e quattro le combinazioni (nella tabella si legge "2 clienti che hanno acquistato anche h acquistati", "1 cliente che ha acquistato anche acquistato j" e "1 il cliente che ha acquistato j ha anche acquistato j "- sì, le interpretazioni del valore diagonale sono strane, ma è quello che mi serve. – user1228982