Mehrere Spalten addieren und eine Ergebnissspalte erstellen
Mehrere Spalten addieren und eine Ergebnissspalte erstellen
Hallo Zusammen,
ich sitze nun schon ewig an meinem Problem. Ich hoffe ihr könnt mir weiterhelfen..
Ich möchte eine Umfrage auswerten mit 1028 obs. und 71 Variablen.
5 der Variablen enthalten Geldbeträge, die die Befragten selbst eintragen durften. Ich möchte nun eine Variable erstellen, die die Summe dieser Variablen - also einen Geldbetrag über die Summe der einzelnen Variablen - enthält. Ist das möglich?
Und: Die Spalten enthalten teilweise NA, da die Befragten hier nichts eingetragen haben, kann/muss ich das hier durch eine Null ersetzen?
Vielen Dank schon mal!
Bianka
ich sitze nun schon ewig an meinem Problem. Ich hoffe ihr könnt mir weiterhelfen..
Ich möchte eine Umfrage auswerten mit 1028 obs. und 71 Variablen.
5 der Variablen enthalten Geldbeträge, die die Befragten selbst eintragen durften. Ich möchte nun eine Variable erstellen, die die Summe dieser Variablen - also einen Geldbetrag über die Summe der einzelnen Variablen - enthält. Ist das möglich?
Und: Die Spalten enthalten teilweise NA, da die Befragten hier nichts eingetragen haben, kann/muss ich das hier durch eine Null ersetzen?
Vielen Dank schon mal!
Bianka
Re: Mehrere Spalten addieren und eine Ergebnissspalte erstellen
Da du leider kein reproduktives Beispiel an deine Frage angehängt hast, musste ich eins erstellen.
Hier ein Beispiel wie man das machen könnte:
Hier ein Beispiel wie man das machen könnte:
Code: Alles auswählen
# some data
df <- iris[1:3, ]
df$Sepal.Length[2] <- NA
df
# simple sum
df$sum_sepal1 <- df$Sepal.Length + df$Sepal.Width
df$sum_sepal2 <- with(df, Sepal.Length + Sepal.Width)
library(dplyr)
df <- df %>%
mutate(sum_sepal3 = Sepal.Length + Sepal.Width)
df
# NA as zeros
df2 <- df
# replace NA in whole data.frame
df2[is.na(df2)] <- 0
df2$sum_sepal2 <- with(df2, Sepal.Length + Sepal.Width)
df2
Kommt drauf an. Wenn du die "summe aller angegebenen Geldwerte" haben willst ist das legitim. Ansonsten gibt dir R NA zurück. Man könnte aber auch einen anderen Wert für NAs annehmen, falls das irgendwie Sinn macht.Und: Die Spalten enthalten teilweise NA, da die Befragten hier nichts eingetragen haben, kann/muss ich das hier durch eine Null ersetzen?
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Re: Mehrere Spalten addieren und eine Ergebnissspalte erstellen
Danke für deine schnelle Antwort, leider hab ich das gerade nicht so ganz verstanden, vielleicht dann doch mit meinem Beispiel.
Zu meinem Beispiel:
q_002.1 q_002.2 q_002.3 q_002.4 ....
1 500 200 NA 7
2 0 80 700 90
3 NA 49 22 1
4
5
...
1028
Die Spalten q_002.x möchte ich addieren zu einer Summenzeile und die NA (die in jeder der q_002.x Spalten vorkommen durch eine Null ersetzen)
Zu meinem Beispiel:
q_002.1 q_002.2 q_002.3 q_002.4 ....
1 500 200 NA 7
2 0 80 700 90
3 NA 49 22 1
4
5
...
1028
Die Spalten q_002.x möchte ich addieren zu einer Summenzeile und die NA (die in jeder der q_002.x Spalten vorkommen durch eine Null ersetzen)
Re: Mehrere Spalten addieren und eine Ergebnissspalte erstellen
Code: Alles auswählen
bsp <- data.frame(q_002.1 = c(500, 0, NA, 1),
q_002.2 = c(200, 80, NA, 1),
q_002.3 = c(NA, 700, 22, 1),
blubb = c(NA, NA, NA, 1000))
bsp$summe <- rowSums(bsp[,c("q_002.1", "q_002.2", "q_002.3")], na.rm = TRUE)
print(bsp)
LG,
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: Mehrere Spalten addieren und eine Ergebnissspalte erstellen
PERFEKT!!! Tausend-Dank
Re: Mehrere Spalten addieren und eine Ergebnissspalte erstellen
Code: Alles auswählen
replicate(1000, print("Dank"))
Re: Mehrere Spalten addieren und eine Ergebnissspalte erstellen
@jogo: Wer hat denn Zeit, sich daran die Finger wund zu tippen?
@Biance: Freut mich.rep('Dank',1e3)
---
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