Häufigkeitsverteilung von Artikelkombinationen

Fragen, die sich auf kein spezielles Verfahren beziehen.

Re: Häufigkeitsverteilung von Artikelkombinationen

Beitragvon stolph » Do 7. Jul 2016, 13:44

Hallo Bernhard,

okay, vielen Dank. Dann experimentiere ich mal ein wenig.

bele hat geschrieben:Wenn Du alle Kombinationen suchst, in denen "6527670" und "6790904" vorkommen, kannst Du das über subset() und die Stringfunktionen von R finden.


Diese Betrachtungsweise treibt die "Ergebnisliste" (bzw. Anzahl zu findender Kombinationen) exponentiell nach oben, oder?

bele hat geschrieben:In Zeile drei fasse ich jede Bestellung in einem String zusammen, in dem in eindeutiger Reihenfolge die Artikelnummern mit einem "+" verbunden sind.
...
deals.strings <- lapply(deals, function(x) paste0(x, collapse="+"))


Diese eindeutige Reihenfolge orientiert sich an der Größe der Artikelnummer (klein nach groß), richtig?
Somit kann es keine Kombination 6790904+6527670 geben, da 6790904 > 6527670?

Viele Grüße,

Philipp
stolph
Grünschnabel
Grünschnabel
 
Beiträge: 6
Registriert: Mo 27. Jun 2016, 20:32
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Häufigkeitsverteilung von Artikelkombinationen

Beitragvon bele » Do 7. Jul 2016, 14:58

stolph hat geschrieben:Diese eindeutige Reihenfolge orientiert sich an der Größe der Artikelnummer (klein nach groß), richtig?
Somit kann es keine Kombination 6790904+6527670 geben, da 6790904 > 6527670?


Richtig. Für die eigentliche Arbeit verwende ich die Funktion table(), weil sie von sehr schlauen Menschen geschrieben ist und das Sortieren und Zählen bestimmt sehr viel effektiver macht als alles, was ich selbst schreiben könnte. table() funktioniert nicht mit Listen von Artikelnummern, aber sehr wohl mit Strings mit Artikelnummern. Der String "6790904+6527670" unterscheidet sich aber von "6527670+6790904". Ich brauchte also eine eindeutige Reihenfolge. sort() steht hier nicht, um eine auf- oder absteigende Ordnung zu bekommen sondern nur, um eine eindeutige Anordnung zu bekommen.

Diese Betrachtungsweise treibt die "Ergebnisliste" (bzw. Anzahl zu findender Kombinationen) exponentiell nach oben, oder?

Das habe ich nicht verstanden. Du hast jetzt eine Liste von knapp 10.000 Bestellkombinationen. Wenn Du aus denen nun alle die heraussuchst, die zwei bestimmte Artikel enthalten und die anderen verwirfst, kommt eine Zahl unter 10.000 heraus. Welche genau, das hängt von dem Bestellverhalten der Käufer ab.

LG,
Bernhard


PS: Jetzt habe ich es verstanden: Du sollst nicht alle denkbaren Bestellkombinationen erzeugen, sondern deals.strings filtern mit der Frage, in welchen Strings in der Liste die eine Artikelnummer vorkommt und die andere Artikelnummer vorkommen. which() und string_detect() und der Logikoperator '&' machen es möglich.
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5920
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1401 mal in 1387 Posts

Vorherige

Zurück zu Allgemeine Fragen

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 21 Gäste