Seite 1 von 1
Hilfe bei Datenverarbeitung
Verfasst: Fr Okt 13, 2017 6:20 pm
von guy2
Hallo zusammen!
Ich habe mich extra hier angemeldet, da ich mit dem Programm am verzweifeln bin.
Für mein Studium soll ich eine statistische Untersuchung mit R durchführen.
Das dazugehörige Seminar war...naja. Ich habe weder eine Einführung in R erhalten noch in Statistik (Kursbezeichnung: Einführung in Statistik anhand von R)
Wie auch immer..jetzt zu meinem Problem (zumindest zum Ersten), dass wahrscheinlich für euch Profis ein Kinderspiel ist:
Ich habe in meinem Datensatz die Einkommen von rund 3000 Personen, etwa 1000 haben die Angabe verweigert. Ich würde diese gerne vorerst ausschließen. Mit welchem Befehl kann ich diese Gruppe ausschließen? Also einen neuen "Value" erstellen, der nur tatsächliche Angaben enthällt.
Hoffe ihr könnt mir helfen!
Gruß
Re: Hilfe bei Datenverarbeitung
Verfasst: Fr Okt 13, 2017 11:31 pm
von EDi
Ich denke die Funktionen ?is.na(), sowie vielleicht ?`[`könnten hilfreich sein.
Genauso wie der ?Logic Operator '!'.
Re: Hilfe bei Datenverarbeitung
Verfasst: Sa Okt 14, 2017 10:49 am
von student
Hallo guy2,
schade, dass es nicht mit den Seminar oder überhaupt einer Statistikvorlesung geklappt hat. Aber vielleicht kannst Du ja ein wenig nachholen? Eine Einführung in R findest Du
hier. Für den gelegentlichen Anwender ist möglicherweise auch der
R-Commander interessant!
Viel Erfolg!
Re: Hilfe bei Datenverarbeitung
Verfasst: Sa Okt 14, 2017 1:21 pm
von guy2
Danke schon mal für die Antworten.
Aber das sind genau solche Sachen die mich zur Weißglut treiben:
Komplette Tabelle:
table(income2) -> Tabelle mit >3000 Werten wird angezeigt, soweit so gut
Jetzt ohne "Verweigerer"
table (income2 !=99999) -> 1000 FALSE , 2000 TRUE
Wie bringe ich dieses atemberaubende Programm dazu mir wieder eine Tabelle mit Werten anzuzeigen?
Re: Hilfe bei Datenverarbeitung
Verfasst: Sa Okt 14, 2017 11:19 pm
von EDi
Bitte ein reproduzierbares Beispiel posten.
Ist income2 ein vektor?
Dann
um die 99999 werte auszuschließen
bzw.
um die Häufigkeiten darin zu sehen.
Re: Hilfe bei Datenverarbeitung
Verfasst: So Okt 15, 2017 12:37 pm
von guy2
Vielen Dank, genau das habe ich gesucht....
Wenn ich nun noch einen weiteren Wert dort ausschließen muss, würde das doch über den logischen Operator "&" laufen,oder?
also:
table(income2[income2 !=99997&99999]
Nun ja, anscheinend nicht.. ich versteh die Logik hinter dem Programm nicht.
In Wort würde die Formel doch heißen:
"Tabelle mit Einkommen, wobei Einkommen ungleich 99997 & 99999"
Was meinst du mit reproduzierbares Beispiel?
Ich habe eine Tabelle in denen Einkommen angegeben wurden und jeweils Leute die dieses haben:
Bsp:
1111€ -> 1 Person
1300€ -> 3 Personen
...
...
99997-> 1030 Personen
99999-> 27 Personen
(auf der Euroseite kommen nachher die Werte 99999 und 99997, das sind dann "Verweigerer" und "Keine Angabe")
Ich muss die Werte erst mal ausschließen, damit ich damit rechnen kann.
Wie definieren sich denn Vektoren in R? Vektor gibt doch eine Richtung vor.
Ich habe eine Ordinale Tabelle wobei X-Werte das Einkommen beschreiben von gering nach hoch und die Y-Werte mit der Anzahl der Personen.
PS. Sry wenn ich mich so blöd hier anstelle
Das ist nicht wirklich mein Fachgebiet und mit Programiersprache habe ich keinerlei Erfahrung...gucke zwar nach Tutorials aber das hilft nur bedingt
Re: Hilfe bei Datenverarbeitung
Verfasst: So Okt 15, 2017 2:11 pm
von bigben
Hi!
Vektoren gibt es nicht nur in der Geometrie, eine einfache Zahlenreihe heißt in R Vector. Statistiken rechnet man oft über Daten in Tabellen. Das sind dann mehrere zusammengehörige vectors, die heißen in R dataframe. Du wirst Dir ein Einführungstutorial in R antun müssen, wenn Du in R ein wenig mehr als nur Daten auswählen möchtest.
Zum Thema reproduzierbares Beispiel siehe beispielsweise
https://stackoverflow.com/help/mcve
Nach Deinem ersten Post hast Du eine fehlleitende Antwort bekommen, weil wir nicht wissen konnten, dass fehlende Angaben als 9999 codiert sind. In R codiert man sowas als NA.
Ein reproduzierbares Beispiel könnte so aussehen:
Code: Alles auswählen
income <- c(1000, 2000, 3000, 99999, 99997, 40000)
income.bereinigt <- income[income!=99999 & income!=99997]
print(income.bereinigt)
Wenn man sich in diese Notation mit den eckigen Klammern mal eingefunden hat, ist sie phantastisch. Für Anfänger und R-fremde kann es leichter lesbar sein, wenn man die Funktion subset() verwendet. Beispielsweise so:
Code: Alles auswählen
income <- c(1000, 2000, 3000, 99999, 99997, 40000)
income.bereinigt <- subset(income, income < 99990)
print(income.bereinigt)
Wenn es sehr viele spezielle Codes wie 99997 und 99999 gibt, kann es übersichtlich sein, den Operator %in% und das Ausrufezeichen als logisches "Nicht" miteinander zu verbinden, wie in
Code: Alles auswählen
income <- c(1000, 2000, 3000, 99999, 99997, 40000)
income.bereinigt <- subset(income, !(income %in% c(99997, 99999)))
print(income.bereinigt)
HTH,
Bernhard
Re: Hilfe bei Datenverarbeitung
Verfasst: Mi Okt 18, 2017 2:41 pm
von guy2
Hallo! Wollte mich mal für die Hilfe bedanken!
Komme leider nicht wirklich zum ausführlichen antworten, da ziemlich viel Zeit in die bearbeitung der Arbeit fließt..