neue Variable erstellen

Alles zum Thema der beschreibenden Statistik

Moderator: jogo

sabrina5678
Beiträge: 10
Registriert: Mi Mär 04, 2020 4:11 pm

neue Variable erstellen

Beitrag von sabrina5678 »

Hallo zusammen,

ich habe eine Variable ("Welche der folgenden Quellen vertrauen sie am meisten wenn es um Impfinformationen geht?") mit einer Mehrfachauswahl von 1 bis 11.
Hier die genaue Ausgabe von R bezüglich der Ausprägungen:

Code: Alles auswählen

$label
[1] "MOST TRUSTED VACCINE INFO SOURCE"

$format.spss
[1] "F1.0"

$class
[1] "haven_labelled"

$labels
                                                     Family                                 /                    Friends 
                                                          1                                    /                       2 
    Your general practitioner, a doctor, or a paediatrician Other health    /       care workers (nurses, specialist doctors, etc) 
                                                          3                                   /                        4 
                                                Pharmacists                         /             Online social networks 
                                                          5                               /                            6 
                                       Other internet sites                      /                The health authorities 
                                                          7                                 /                          8 
                                        Other (SPONTANEOUS)                      /                    None (SPONTANEOUS) 
                                                          9                                  /                        10 
                                                         DK 
                                                         11 

Nun möchte ich eine neue Variable erstellen, die lediglich die Ausprägung 5,also das Internet als Infoquelle und die Ausprägung 6, online social networks, beinhaltet.

Ich habe es bereits folgendermaßen ausprobiert:

Code: Alles auswählen

internet_Info <- recode (d_raw$qc10, "1=0; 2=0; 3=0; 4=0; 5=0; 8=0; 9=0; 10=0; 11=NA; else=1")
dann kommt allerdings folgende Fehlermeldung:

Code: Alles auswählen

Error in UseMethod("recode") : 
  no applicable method for 'recode' applied to an object of class "haven_labelled"

Über einen richtigen Lösungsweg würde ich mich sehr freuen :)
Zuletzt geändert von jogo am Mi Mär 04, 2020 8:00 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert, siehe http://forum.r-statistik.de/viewtopic.php?f=20&t=29
Benutzeravatar
student
Beiträge: 536
Registriert: Fr Okt 07, 2016 9:52 am

Re: neue Variable erstellen

Beitrag von student »

Hallo Sabrina,

ich habe hier zu recode mal ein Beispiel gebastelt. Vielleicht hilft es Dir weiter....
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
bigben
Beiträge: 2352
Registriert: Mi Okt 12, 2016 9:09 am

Re: neue Variable erstellen

Beitrag von bigben »

Hallo Sabrina,

ich kenne mich mit haven nicht aus. Das ist ein Paket, mit dem man SPSS-Daten in R einliest. So furchtbar häufig kommt das hier gar nicht vor. Der Autor dieser Klasse von Daten schreibt im Manual dazu:
A labelled vector is a common data structure in other statistical environments, allowing you to
assign text labels to specific values. This class makes it possible to import such labelled vectors in
to R without loss of fidelity. This class provides few methods, as I expect you’ll coerce to a standard
R class (e.g. a factor()) soon after importing
Und das würde sich für mich auch am harmonischsten anfühlen - die Daten in einen factor umzuwandeln, was dann mit allen üblichen R Funktionen harmonisch zusammenarbeiten würde.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
sabrina5678
Beiträge: 10
Registriert: Mi Mär 04, 2020 4:11 pm

Re: neue Variable erstellen

Beitrag von sabrina5678 »

Hallo bigben,

vielen Dank für deine Antwort!

da ich noch ein blutiger Anfänger in R bin, tue ich mir schwer, eine Faktorvariable zu erstellen.
Mein Ziel ist es ja, lediglich eine Variable zu erhalten, die die Internetnutzung und Social-Media-Nutzung zusammenfasst (Ausprägung 6 und 7).

Die Ausprägungen der Ausgangsvariable (d_raw$qc10) ist:
1=family
2=friends
3=general practitioner
....
6=online social networks
7=other internet sites
...


Habe mich bereits belesen, allerdings komme ich nicht arg viel weiter als so eine Faktorvariable zu bilden, das offensichtlich nicht richtig ist:

info_impf <- factor(d_raw$qc10, levels = c(1,2,3,4,5,6,7,8,9), labels = c("family", "friends", "general practitioner", "other health care workers", "pharmacists", "online social networks", "other internet sites", "the health authorities", "other"))


Wie fasse ich die Ausprägungen 5 und 6 in einer neuen Variable zusammen?

Über eine Antwort würde ich mich wieder sehr freuen :)

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

Re: neue Variable erstellen

Beitrag von bigben »

Hi!

Das Paket haven, mit dem ich keine Erfahrung habe, stellt genau dafür eine Funktion bereit, die as_factor (also mit Unterstrich) heißt. Wenn wir die Daten erstmal in einer Form haben, die den Forumsaktiven geläufig ist, ist das Zusammenfassen kein Problem mehr.

Was passiert denn bei

Code: Alles auswählen

info_impf <- as_factor(d_raw$qc10, "both")
str(info_impf)
head(info_impf)
table(info_impf)
LG,
Bernhard


https://www.rdocumentation.org/packages ... elled_spss
https://www.rdocumentation.org/packages ... /as_factor
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2053
Registriert: Fr Okt 07, 2016 8:25 am

Re: neue Variable erstellen

Beitrag von jogo »

Hallo Sabrina,

ohne reproduzierbare Daten ist sowas immer schwer zu beantworten.
viewtopic.php?f=20&t=11

Mit recode() aus dem Paket car könnte es so aussehen:

Code: Alles auswählen

library("car")

B <- BOD
B$T <- recode(B$Time, "3:4='dreivier'; 7='sieben'; else='sonstso'")
B
Gruß, Jörg
sabrina5678
Beiträge: 10
Registriert: Mi Mär 04, 2020 4:11 pm

Re: neue Variable erstellen

Beitrag von sabrina5678 »

bigben hat geschrieben: Do Mär 05, 2020 8:09 am Hi!

Das Paket haven, mit dem ich keine Erfahrung habe, stellt genau dafür eine Funktion bereit, die as_factor (also mit Unterstrich) heißt. Wenn wir die Daten erstmal in einer Form haben, die den Forumsaktiven geläufig ist, ist das Zusammenfassen kein Problem mehr.

Was passiert denn bei

Code: Alles auswählen

info_impf <- as_factor(d_raw$qc10, "both")
str(info_impf)
head(info_impf)
table(info_impf)
LG,
Bernhard


https://www.rdocumentation.org/packages ... elled_spss
https://www.rdocumentation.org/packages ... /as_factor


Hallo Bernhard,

erstmal vielen Dank für die schnelle Rückmeldung und Bemühung!

Gerne würde ich euch meinen Datensatz bereitstellen, ich kann hier jedoch keine .csv Datei hochladen -.-

Wenn ich deinen Befehl ausführe, kommt folgendes:

Code: Alles auswählen

> str(info_impf)
 Factor w/ 11 levels "[1] Family","[2] Friends",..: 8 3 3 3 3 3 3 5 3 3 ...
 - attr(*, "label")= chr "MOST TRUSTED VACCINE INFO SOURCE"
> head(info_impf)
[1] [8] The health authorities                                 
[2] [3] Your general practitioner, a doctor, or a paediatrician
[3] [3] Your general practitioner, a doctor, or a paediatrician
[4] [3] Your general practitioner, a doctor, or a paediatrician
[5] [3] Your general practitioner, a doctor, or a paediatrician
[6] [3] Your general practitioner, a doctor, or a paediatrician
11 Levels: [1] Family ... [11] DK
> table(info_impf)
info_impf
                                                     [1] Family 
                                                            845 
                                                    [2] Friends 
                                                            355 
    [3] Your general practitioner, a doctor, or a paediatrician 
                                                          17521 
[4] Other health care workers (nurses, specialist doctors, etc) 
                                                           2695 
                                                [5] Pharmacists 
                                                            928 
                                     [6] Online social networks 
                                                            285 
                                       [7] Other internet sites 
                                                            553 
                                     [8] The health authorities 
                                                           3323 
                                        [9] Other (SPONTANEOUS) 
                                                             74 
                                        [10] None (SPONTANEOUS) 
                                                            576 
                                                        [11] DK 
                                                            369 


Leider ist mir immernoch kein Licht aufgegangen, wie ich nun eine neue Variable erstelle, die lediglich aus den Ausprägungen 6 und 7 besteht :(
Zuletzt geändert von jogo am Fr Mär 06, 2020 7:47 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert, siehe http://forum.r-statistik.de/viewtopic.php?f=20&t=29
jogo
Beiträge: 2053
Registriert: Fr Okt 07, 2016 8:25 am

Re: neue Variable erstellen

Beitrag von jogo »

Hallo Sabrina,
sabrina5678 hat geschrieben: Fr Mär 06, 2020 6:41 pm Gerne würde ich euch meinen Datensatz bereitstellen, ich kann hier jedoch keine .csv Datei hochladen -.-
hier in diesem Beitrag ging das Anhängen einer CSV-Datei: viewtopic.php?p=9797#p9797
Ist Deine Datei größer als 500 KB ?

Oder Du packst die Datei auf einen Cloudspeicher und sendest in der Nachricht nur den Link.

Gruß, Jörg
sabrina5678
Beiträge: 10
Registriert: Mi Mär 04, 2020 4:11 pm

Re: neue Variable erstellen

Beitrag von sabrina5678 »

Hallo Jörg,

danke für den Tipp! Da meine Datei ein Sekundärdatensatz ist, bzw. der Eurobarometer 2019, überschreitet die Datei die 500KB.

Hier aber der Link dazu: https://www.dropbox.com/s/qeciwezjg6pfx ... r.sav?dl=0

Hoffe jeder hat nun darauf Zugriff. Auch ist es eine sav Datei, und keine csv., wie ich oben fälschlicherweise geschrieben habe (sorry).

Es geht um die Variable qc10.

Du hattest mir ja auch schon geantwortet, mit dem Befehl recode komme ich hier allerdings nicht voran - da dann die Fehlermeldung kommt, dass es sich um eine haven_labelled Variable handelt (wie oben bereits thematisiert :) ).

Danke für eure Hilfe!
jogo
Beiträge: 2053
Registriert: Fr Okt 07, 2016 8:25 am

Re: neue Variable erstellen

Beitrag von jogo »

Hallo Sabrina,

kannst Du bitte noch zeigen, mit welchem Code Du die Datei einliest und welche Pakete Du dafür verwendest?

Gruß, Jörg
Antworten