Hallo allesamt,
ich habe ein kleines Problem und hoffe, dass Ihr dabei helfen könnt.
Es geht um zwei Variablen, einmal das Studienfach (1=Deutsch, 2 = MINT, 3 = gessellschaftlich 4 = musisch 5 = Sport) und das Wohlbefinden der Person (1 niedrig bis 5 hoch).
Ich möchte nun eine Funktion erstellen, in der für alle Personen mit Studienfach 1 (Deutsch) vom jeweiligen Wohlbefinden der Person der Wert 2 abgezogen wird, während von Personen mit Studienfach 2 und 3 vom Wohlbefinden 3 abgezogen wird.
Ich hoffe die Frage ist verständlich, meldet euch sonst gerne nochmal mit nachfrage.
Vielen Dank und schöne Feiertage
Jonas
Bedingte Funktion
Re: Bedingte Funktion
Hallo Jonas,
zeigst Du jetzt bitte trotzdem erstmal die Struktur Deiner Daten?
siehe viewtopic.php?p=13793#p13793
Deine Aufgabe müsste mit ifelse() zu lösen sein.
Gruß, Jörg
zeigst Du jetzt bitte trotzdem erstmal die Struktur Deiner Daten?
siehe viewtopic.php?p=13793#p13793
Deine Aufgabe müsste mit ifelse() zu lösen sein.
Gruß, Jörg
Re: Bedingte Funktion
Hallo jonas,
Du erhöhst Deine Chancen auf gute und schnelle Antworten, wenn Du zu sowas R-Code mit Beispieldaten postest.
Was hälst Du davon?
LG,
Bernhard
Du erhöhst Deine Chancen auf gute und schnelle Antworten, wenn Du zu sowas R-Code mit Beispieldaten postest.
Was hälst Du davon?
Code: Alles auswählen
bsp <- data.frame(fach = gl(5,3,labels = c("Deutsch", "MINT", "gesellschaftlich", "musisch", "Sport")),
wohl = sample(1:5, 15, TRUE))
print(bsp)
bsp$differenz <- ifelse(bsp$fach == "Deutsch", yes = -2, no = -3)
print(bsp)
bsp$wohl <- bsp$wohl + bsp$differenz
bsp$differenz <- NULL
print(bsp)
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Bedingte Funktion
Hallo Bernhard, Hallo Jörg,
danke für eure Anregungen. Hier erstmal die (gekürzte) Datenstruktur, ich hoffe das entspricht dem was du suchst. Ich habe die Anzahl der Fächer etwas gekürzt um im Beispiel Übersichtlichkeit zu bekommen.
Die Ifelse Funktion sieht super aus, es bleibt nur noch ein kleines Problem: Damit wird -3 von allen abgezogen die nicht Deutsch sind, somit auch von sport obwohl davon kein Wert abgezogenw erden soll. Kann ich noch irgendwie eine Zweite if schleife einfügen?
Viele Grüße
Jonas
danke für eure Anregungen. Hier erstmal die (gekürzte) Datenstruktur, ich hoffe das entspricht dem was du suchst. Ich habe die Anzahl der Fächer etwas gekürzt um im Beispiel Übersichtlichkeit zu bekommen.
Code: Alles auswählen
> str(daten)
'data.frame': 719 obs. of 647 variables:
$ fach_01 : num 2 2 2 2 20 4 16 4 4 4 ...
..- attr(*, "label")= chr "1. Fach(richtung) /Lernbereich"
..- attr(*, "format.spss")= chr "F8.2"
..- attr(*, "display_width")= int 0
..- attr(*, "labels")= Named num 1 2 3 4 5 6 7 8 9 10 ...
.. ..- attr(*, "names")= chr "Chemie" "Deutsch" "Elektrotechnik" "Englisch" ...
Viele Grüße
Jonas
Re: Bedingte Funktion
Hallo Jonas,
bei mir sieht es so aus:
oder so:
Gruß, Jörg
bei mir sieht es so aus:
Code: Alles auswählen
bsp <- data.frame(fach = gl(5,3,labels = c("Deutsch", "MINT", "gesellschaftlich", "musisch", "Sport")),
wohl = sample(1:5, 15, TRUE))
bsp$wohl[bsp$fach=="Deutsch"] <- bsp$wohl[bsp$fach=="Deutsch"] - 2
bsp$wohl[bsp$fach %in% c("MINT", "gesellschaftlich")] <-
bsp$wohl[bsp$fach %in% c("MINT", "gesellschaftlich")] - 3
Code: Alles auswählen
bsp$wohl[bsp$fach=="Deutsch"] <- bsp$wohl[bsp$fach=="Deutsch"] - 2
i <- bsp$fach %in% c("MINT", "gesellschaftlich")
bsp$wohl[i] <- bsp$wohl[i] - 3