Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

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

Moderatoren: EDi, jogo

Antworten
gwennpascale
Beiträge: 1
Registriert: Do Mär 18, 2021 7:52 pm

Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von gwennpascale »

Hallo zusammen

Ich arbeite an einem Projektseminar, indem wir eine Studie durchgeführt haben. Wie kann ich mehrere Werte (inform einer Spalte) zu einer neuen Variable zusammenfassen. Meine Daten bestehen aus einzelnen Fragen eines Tests, die ich gerne zum Gesamtwert des Tests zusammenführen würde. Aus der Verteilung des Gesamtwert muss ich ein Histogramm erstellen.

Ich habe es mit folgendem Begriff probiert:

transmute (d, kovra = kovra1 + kovra2)

und

mutate (d, kovra = kovra1 + kovra2)

--> Das Problem ist einerseits, dass es die neue Variable (Spalte) nicht speichert oder erkennt und andereseits ist es danach ein Vektor und ich brauche für ein Histogramm einen numerischen Wert.

herzlichen Dank im Voraus für eure Antworten und liebe Grüsse! :D
Gwenn
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von schubbiaschwilli »

Gude!

Da ich keine Ahnung von den Daten habe, vermute ich mal, dass die Daten in Spalten vorliegen.
Dann geht das z.Bsp. so:

Code: Alles auswählen

data <- data.frame(a=1:10, b=11:20)
data$Summe = data$a + data$b
Dank&Gruß
Schubbiaschwilli
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von bigben »

@schubbiaschwili: Ich weiß nicht, ob die jungen Leute von heute das so noch verstehen. Man könnte auch einfach schreiben

Code: Alles auswählen

library(tidyverse)
fb <- tibble(a = c(1, 1, 2, 4, 2, 3, 1, 1, 1, 2, 1),
             b = c(1, 1, 2, 5, 1, 2, 3, 2, 1, 4, 2),
             c = c(5, 5, 3, 2, 3, 1, 1, 2, 3, 1, 1),
             d = c(5, 5, 1, 1, 1, 1, 2, 1, 2, 3, 1),
             e = c(5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5))

fb$sum_ab <- fb$a %>% `+`(fb$b)
fb$sum_cde <- fb$c %>% `+`(fb$d) %>%`+`(fb$e)
fb


ggplot(fb) + geom_histogram( aes(x = sum_cde), binwidth = 3) + geom_rug(aes(x = jitter(sum_cde)))
:D

Ansonsten kann ich allen die Fragebögen auswerten das Paket psych ans Herz legen und da gibt es z. B. die Function scoreItems.

LG,
Bernhard

PS: die mutate- Variante zum Beispiel oben lautet

Code: Alles auswählen

fb <- fb %>% mutate(summe = a + b + c + d + e)
# oder kürzer
fb %<>% mutate(summe2 = a + b + c + d + e)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von schubbiaschwilli »

Gude!
bigben hat geschrieben: Fr Mär 19, 2021 8:20 amMan könnte auch einfach schreiben
Hey, ich erkenne ja Ironie, wenn ich sie sehe... Aber dazu mal die Frage: Aktuell mach' ich wieder viel mit Formeln, Monte-Carlo-Simulationen und sowas.
Was ist daran:

Code: Alles auswählen

fb$sum_cde <- fb$c %>% `+`(fb$d) %>%`+`(fb$e)
so viel besser und vor allem leserlich(er)? Ich sehe diese Schreibweise ja öfter, aber ich erkenne keine Vorteile.

Dank&Gruß
Schubbiaschwilli
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von Athomas »

Was ist daran ... so viel besser und vor allem leserlich(er)? Ich sehe diese Schreibweise ja öfter, aber ich erkenne keine Vorteile.
Ich glaube, das wird man niemandem, der keine Allergie gegen geschachtelte Funktionen hat und - wenn's zu doll wird - ein paar Leerzeichen oder sogar Zeilenumbrüche zur besseren Orientierung einzufügen bereit ist, erklären können :D !
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von bigben »

schubbiaschwilli hat geschrieben: Fr Mär 19, 2021 11:51 amHey, ich erkenne ja Ironie, wenn ich sie sehe... Aber dazu mal die Frage: Aktuell mach' ich wieder viel mit Formeln, Monte-Carlo-Simulationen und sowas.
Was ist daran:

Code: Alles auswählen

fb$sum_cde <- fb$c %>% `+`(fb$d) %>%`+`(fb$e)
so viel besser und vor allem leserlich(er)? Ich sehe diese Schreibweise ja öfter, aber ich erkenne keine Vorteile.
Erstmal Danke für's Ironie erkennen.

Zum zweiten habe ich aus der Erwähnung hier alles nur unnötig lang und kompliziert machenden mutate und transmutate entnommen, dass der OP in der Schule des Aufgeräumtversums ausgebildet wird. Dort sind Pipes besser. Das Bedarf ebensowenig einer Begründung wie die Ehelosigkeit katholischer Priester. Man kann nicht alles herleiten, manches muss man einfach als Grundannahme setzen. Mein Eindruck vom Lesen einiger weniger Blogs zum Thema ist, dass die bessere Lesbarkeit hier als Grundannahme gesetzt und nicht argumentiert wird. Die Welt der Computerprogammierung wird beherrscht von den Sprachen JavaScript, Java, Python C++, C - lauter Programmierer die alle nicht wissen, wie übersichtlich ihr Code wäre, würden sie ihn von links nach rechts statt von innen nach außen parsen. Schließlich beginnt die Startseite auf www.tidyverse.org mit "The tidyverse is an opinionated collection of R packages..." und nicht mit "The tidyverse is an evidence based collection of R packages...". Also geh jetzt bitte ins Bad und wasch Dir für die Frage den Mund mit Seife aus!

Zum dritten hat Sprache nicht nur eine pragmatische, sondern auch eine ästhetische Dimension. Dein Statement ist statisch. a = b + c + d ist eine Feststellung, dass das eine die Summe der anderen ist. Bei der Pipe strömt information dynamisch vom einen Prozess zum anderen, mit den richtigen Zeilenumbrüchen kaskadenartig einem Wasserfall nicht ungleich seinem Ziele zu. Ein lebendiges Strömen und Fließen vom Ursprung zum Ziel gegenüber einer trocken-statischen Zuschreibung. Ästhetisch ganz klarer Fall.

Zum vierten ist R nunmal eine Multiparadigmensprache. Man kann in R mühelos imperativ programmieren. Man kann in R objektorientiert programmieren (mit einer größeren Auswahl an OO-Varianten als in den meisten anderen Mainstreamsprachen). Man kann in R sogar funktional programmieren (solange man keine tail-call-optimization braucht). Was in R so gar nicht vorgesehene ist ist Stack-orientiertheit. In Forth hat man seine Daten erstmal auf den Stack gelegt und dann eine Rechenoperation darauf angewandt. Ganz genauso kann man das mit der Pipe natürlich nicht nachmachen, aber ein wenig ist es doch schon so, als könnte man ein Argument auf den Stack legen und dann im nächsten Schritt darauf zugreifen und das Ergebnis gleich im Stack haben. Ok, das macht R nicht zu einer stackorientierten Sprache, aber die sind auch selten.

Nun, ich höre hier mal auf, weil Du spätestens jetzt überzeugt bist.

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

Re: Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von bigben »

Athomas hat geschrieben: Fr Mär 19, 2021 12:10 pmIch glaube, das wird man niemandem, der keine Allergie gegen geschachtelte Funktionen hat und - wenn's zu doll wird - ein paar Leerzeichen oder sogar Zeilenumbrüche zur besseren Orientierung einzufügen bereit ist, erklären können :D !
Geschachtelte Funktionen und geschachtelte Sätze :lol:
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von schubbiaschwilli »

Gude!
bigben hat geschrieben: Fr Mär 19, 2021 2:31 pmZum zweiten habe ich aus der Erwähnung hier alles nur unnötig lang und kompliziert machenden mutate und transmutate entnommen, dass der OP in der Schule des Aufgeräumtversums ausgebildet wird.
Ah, ok.
Bei der Pipe strömt information dynamisch vom einen Prozess zum anderen, mit den richtigen Zeilenumbrüchen kaskadenartig einem Wasserfall nicht ungleich seinem Ziele zu. Ein lebendiges Strömen und Fließen vom Ursprung zum Ziel (...)
Wie bekomme ich so ein lebendiges Strömen und Fließen vom Ursprung zum Ziel hin? Gibt's da was auf Rezept, oder muss ich zu dem Typen in der B-Ebene im HBF? Frage für einen Freund...
Also geh jetzt bitte ins Bad und wasch Dir für die Frage den Mund mit Seife aus!
Nö - Ich gedenke, meine Kehle heute Abend mit bestem Wein aus roter Traube zu benetzen. Oder Weißbier - Mal schauen.
Danke für's Ironie erkennen.
Mein Lieblingszitat aus Goldfinger: "Was wissen Sie über Gold? Ich meine Goldbarren?" - "Ich erkenne sie, wenn ich sie sehe." - Kann man immer mal wieder anwenden.

Dank&Gruß
Schubbiaschwilli
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von Athomas »

Nö - Ich gedenke, meine Kehle heute Abend mit bestem Wein aus roter Traube zu benetzen.
Assmannshäuse Höllebesch :P ?
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Werte von mehreren Variablen aufsummieren und zu einer neuen Variable zusammenfassen

Beitrag von schubbiaschwilli »

Gude!

Assmannshäuser Höllenberg - Spätburgunder - Also den kenne ich jetzt nicht, aber ich setze ihn mal auf die Liste. Und da du ja auch schon mal Riesling erwähnt hast: Du bist dem Rheingau zugetan?
Ich hab' mich übrigens für Weißbier entschieden; morgen gibt's Bagels mit Räucherlachs, und am Sonntag 'Stich in die Braut' und 'Blutdurst' (Rippchen mit Kraut und Blutwurst; für alle, die Satan&Deibel nicht kennen), und dazu gibt's gerne mal 'nen knackigen Riesling - Ja, auch zum Rippchen.

Dank&Gruß
Schubbiaschwilli
Antworten