Datensatz Analysen

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

Moderatoren: EDi, jogo

Antworten
jrobert

Datensatz Analysen

Beitrag von jrobert »

Guten Tag. Ich arbeite mit Daten des ESS (European Social Survey).

Eingelesen habe ich die Daten mit der Bibliotheke "haven" aus dem SPSS. Nun kann ich viele Funktionen des Base-Package nicht verwenden. Ich vermute der Grund ist, weil meine Daten als spezielle Datenframes eingelesen wurden. Konkret da ein Beispiel:


Variable: Geschlecht
Classes 'labelled_spss', 'labelled' atomic [1:40185] 1 1 0 1 0 0 1 0 0 0 ...
..- attr(*, "label")= chr "Gender"
..- attr(*, "na_values")= num 9
..- attr(*, "format.spss")= chr "F1.0"
..- attr(*, "labels")= Named num [1:3] 1 2 9
.. ..- attr(*, "names")= chr [1:3] "Male" "Female" "No answer"
NULL

Variable: Länderzugehörigkeit
Class 'labelled' atomic [1:40185] AT AT AT AT ...
..- attr(*, "label")= chr "Country"
..- attr(*, "format.spss")= chr "A2"
..- attr(*, "labels")= Named chr [1:21] "GB" "BE" "DE" "EE" ...
.. ..- attr(*, "names")= chr [1:21] "United Kingdom" "Belgium" "Germany" "Estonia" ...
NULL

Gespeichert ist der Datensatz unter dem Namen "ESS7All". Folgende Funktion liefert mir das gewünschte Ergebnis:

table(ESS7All$gndr,ESS7All$cntry)

cntry
gndr AT BE CH CZ DE DK EE ES FI FR GB HU IE IL LT NL NO PL PT SE SI
0 942 873 766 1128 1500 723 1216 937 1060 1004 1240 976 1288 1398 1381 1060 672 875 694 898 661
1 853 896 766 998 1545 779 835 988 1027 913 1024 722 1102 1164 869 859 764 740 571 893 563

Möchte ich nun jedoch die Proportionen angeben der Geschlechterverteilung (nicht die absoluten Werte) geht mir der gewohnt Weg über:
prop.table(ESS7All$gndr,ESS7All$cntry)
nicht.

Dies ist nur ein konkretes Beispiel. Ich haddere ganz oft, dass gewohnte Funktionen mit dem Datensatz nicht möglich sind und vermute, dass ich diese Probleme habe, weil ich die Funktionen mit den falschen Objekttypen füttere.

Erste tests mit as.numeric etc haben zu nichts geführt. Ideen gehen für mich in die Richtung: Datenframe in Faktoren zerlegen oder ähnliches. Weiss aber nicht ob das die Lösung ist und wie ich das genau angehen sollte.

Bin um jeden Beitrag froh.
Beste Grüsse, Jacques
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Datensatz Analysen

Beitrag von bigben »

labelled_spss() is potentially dangerous to work with in R because base functions don't know about labelled_spss() functions so will return the wrong result in the presence of user-defined missing values. For this reason, they will only be created by read_spss() when user_na = TRUE (normally user-defined missings are converted to NA).
Von https://cran.r-project.org/web/packages/haven/news.html


Mit anderen Worten: Kann es an missing data liegen und kannst Du beim Einlesen diese Option auf False setzen?

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Datensatz Analysen

Beitrag von bigben »

Vielleicht hilft auch das hier um Umgang mit dieser Klasse:
https://cran.r-project.org/web/packages ... elled.html
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten