Datensätze mit R auswählen ?

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Datensätze mit R auswählen ?

Beitrag von bigben »

Hallo grafZahl,

das ist hier ein Statistikforum und ich schaue darauf mit den Augen eines Menschen, der sehr viel auf Statistik-forum.de unterwegs ist. Dort und auch in der Arbeit mit Studienrenden hier an der Uni, sehe ich immer wieder, dass Leute versuchen, statistische Probleme mit Excel anzugehen. Dabei treten sie in tausend Fallen, wo man vorher keine Fallen erwarten durfte. Da werden aus Zahlen Datumsangaben, da werden fehlende Werte beim Aufaddieren nicht berücksichtigt, da gibt es Verteilungsfunktionen, die komische Werte ausgeben, da hat die Boxplot-Funktion keine Erkennung für Ausreißer, die aber in einem Boxplot markiert gehören, da werden Leute verlockt, Balkengrafiken zu machen wo Histogramme hin gehören, da kann man lineare Regressionen machen, aber die Zahl der Prädiktoren ist stark begrenzt, da kann man tolle Eingabeforms für Tabellen machen, solange die Tabelle nicht mehr als soundsoviele Spalten hat etcpp.
Das ist jetzt auch nicht meine persönliche Marotte, da gibt es peer reviewed Veröffentlichungen drüber, beispielsweise hier: https://bmcbioinformatics.biomedcentral ... -2105-5-80 oder hier: http://citeseerx.ist.psu.edu/mwg-intern ... WskJ6M,&dl Einfach mal kurz überfliegen, dann verstehst Du meine Ablehnung.

Aus der Statistik-Perspektive ist Excel ultimatively not fit for real work!

Dein Problem ist kein Statistikproblem und ich kann nicht ausschließen, dass Excel für andere Rechenaufgaben besser geeignet ist. Da fehlen mir Kentnisse und Erfahrung. Hoffentlich ist Dir aufgefallen, dass ich Dich auf ein drittes Programm hingewiesen habe, nicht auf meinen Liebling R.
lp_solve bezeichnet sich selbst als "Mixed Integer Linear Programming (MILP) solver". Der Kernpunkt ist das "Integer". Mit ganzzahligen Integers lassen sich nämlich Kombinationsfragen, wie Du sie hast, abbilden.

Habe ich ein Ergebnis? Nein. Tut mir Leid, dass Du nicht gleich ein Ergebnis erhälst, wenn Du Dich mit einer Optimierungsfragestellung an ein Statistikforum wendest. Natürlich kann ich in einem Uhrmacherforum fragen, warum mein Motor nicht läuft. Beide benutzen schließlich Zahnräder. Ich darf dann nur keine eins-zu-eins-Anleitung aus dem Effeff erwarten. Ich kann halt selbst kein lp_solve, weil ich die sehr wenigen Optimierungsaufgaben, die ich bisher hatte, entweder mit R Bordmitteln oder brute force per vollständigem Ausprobieren lösen konnte. Beides passt nicht zu Deiner Aufgabe.

Ob Du bereit bist, lp_solve eine Chance zu geben, musst Du selbst sehen. Schau Dir die beiden Links in diesem Post an und dann Deine eigenen Erfahrungen und Excel und bilde Dir Deine eigene Meinung. Würde mich nicht wundern, wenn Du lp_solve aus Excel heraus benutzen könntest, aber das musst Du schon selbst schauen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Datensätze mit R auswählen ?

Beitrag von jogo »

Inzwischen ist es mir gelungen, das Problem zu formalisieren.

Code: Alles auswählen

d <- read.csv2("http://forum.r-statistik.de/download/file.php?id=466")
ist die Tabelle der vorhandenen KFZ (507 Zeilen), 5 Spalten:
"ID" "Kategorie" "Gruppe" "Leistung" "Kosten"

Für die Darstellung des Problems verwende ich noch den Auswahlvektor x (507 Elemente TRUE/FALSE)
Das folgende ist eine Darstellung im Sinne eines Pseudocodes:
!max sum(Leistung[x])
Nebenbedingungen:
.. <= sum(x) <= ..
sum(Kosten[x]) <= 50
.. <= table(Gruppe[x]) <= ..
.. <= table(Kategorie[x]) <= ..

Die Teile ".." sind die unteren bzw. oberen Schranken.

Es ist also vorrangig ein Modellierungsproblem (finde die geeignete Darstellung des Problems, damit der Typ identifiziert werden kann und man anschließend das passende Werkzeug/Paket findet).
Hier die Beschreibung eines ähnlichen Problems:
https://de.wikipedia.org/wiki/Rucksackproblem https://www.proggen.org/doku.php?id=algo:knapsack
Deines ist etwas allgemeiner (quasi mit mehr Variablen in den Nebenbedingungen).

Hier eine Suche auf SO: https://stackoverflow.com/search?q=%5Br%5D+knapsack
und noch etwas Schönes: https://en.wikipedia.org/wiki/List_of_knapsack_problems
... dort https://en.wikipedia.org/wiki/List_of_k ... onstraints

https://cs.stackexchange.com/questions/ ... rogramming

Bei der Umsetzung in R kann eventuell folgendes nützlich sein:

Code: Alles auswählen

d <- read.csv2("http://forum.r-statistik.de/download/file.php?id=466")
model.matrix(~ 0+Kategorie, data=d)
Gruß, Jörg
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Datensätze mit R auswählen ?

Beitrag von EDi »

bigben,

auf den zweiten Link hab ich keinen Zugang, kannst du einen Quellenverweis dazu posten? Finden tu ich das dann selbst auf irgendwelchen servern...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Datensätze mit R auswählen ?

Beitrag von bigben »

Hallo EDi,

wahrscheinlich habe ich irgendwas beim Kopieren des Links falsch gemacht. Verlinkt sein sollte
B.D. McCullough, David A. Heiser, On the accuracy of statistical procedures in Microsoft Excel 2007, Computational Statistics and Data Analysis 52 (2008) 4570–4578
http://citeseerx.ist.psu.edu/viewdoc/do ... 1&type=pdf
Ist vielleicht nicht das wichtigste Paper zum Lesen, wenn man bedenkt, dass es sich auf die Version von 2007 bezieht, ich habe aber dafür jetzt keine aktuelle Literaturrecherche betrieben.

Das andere von mir (wohl besser) verlinkte Paper war
Barry R Zeeberg, Mistaken Identifiers: Gene name errors can be introduced inadvertently when using Excel in bioinformatics, BMC Bioinformatics20045:80 https://doi.org/10.1186/1471-2105-5-80

Ich hatte woanders mal links zum Thema gesammelt. Das hier ist ein Goldstückchen, wenn auch nicht peer reviewed:
https://coffeehouse.dataone.org/2014/04 ... -in-excel/

Am 18.3.2019 (!) schrieb mir ein Kooperationspartner zum von mir verschickten CSV: "Leider ist das Excel Dokument von dir mit allen Resultaten für mich unbrauchbar, da alle [...] Werte mit einem Punkt versehen wurden und Excel mir dies als Datumsanzeige wiedergibt."

Am 26.3.2019 (!) antwortete meine Mitarbeitern (sie nutzt sonst Open Office) darauf: "Im Anhang finden Sie die aktuelle Excel. Ich habe die Punkte als Komma-Marker belassen, kann aber gern nochmal versuchen sie durch richtige Kommas zu ersetzen. Grund für diese Weise der Dokumentation ist, dass mir in der Excel die Kommas als Datumsanzeigen ausgegeben wurden."

Wir haben in diesem verdammten Datensatz zwei Ausreißer, die gar keinen Sinn ergeben und die gewaltig von der intendierten Aussage des Papers ablenken, und meine Kooperationspartner diskutieren dämliche Erkennungsautomatiken! Dem erstgenannten habe ich geraten, die Datentabelle doch einfach in SPSS zu öffnen. Habt Ihr eine Ahnung, wie weh das tut, wenn ich jemandem SPSS empfehle? :lol:
Ich möchte gerne noch anhängen, dass es sich bei beiden nicht um Studierende, sondern um Akademiker handelt, der eine mit Doktortitel (nein, nicht aus der Medizin, sondern richtig).

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Datensätze mit R auswählen ?

Beitrag von jogo »

Hier habe ich wichtige Lektüre gefunden über das Knapsack-Problem mit mehreren Nebenbedingungen:
http://www.sree.org.uk/jmo/9.2/jmo.9.2.112.pdf

Gruß, Jörg
Antworten