Hallo zusammen
Ich bin neu hier und habe folgendes Problem:
Ich habe in meinem Datensatz eine String-Variable, die verschiedene Informationen enthält:
Aktivitäten
"Laufen, Rennen, Essen"
"Laufen, Essen"
"Rennen, Essen, Entspannen"
usw...
Ich würde nun gerne aus dieser Variable mehrere neue Dummy-Variablen erstellen, damit es so aussieht:
Laufen | Rennen | Essen | Entspannen
1 1 1 0
1 0 1 0
0 1 1 1
Kann ich irgendwie dem Programm sagen, dass ich möchte, dass wenn die Variable "Aktivitäten" z.B. Laufen enthält, in der Variable "Laufen" eine 1 gesetzt wird und ansonsten eine 0?
Habe im Internet leider bisher nichts gefunden.
Vielen Dank im Voraus!
Liebe Grüße
Klurk
Neue Variable aus alter erstellen mit IF-Bedingung
-
- Beiträge: 3
- Registriert: Di Mai 08, 2018 9:51 pm
Re: Neue Variable aus alter erstellen mit IF-Bedingung
Hallo Klurk,
hilft das hier beim Selbermachen?
Vielleicht irgendwie so?
LG,
Bernhard
hilft das hier beim Selbermachen?
Code: Alles auswählen
d <- c("Laufen, Rennen, Essen", "Laufen, Essen", "Rennen, Essen, Entspannen")
grep("Laufen", d)
grep("Rennen", d)
grep("Entspannen", d)
Code: Alles auswählen
m <- matrix(0, nrow=3, ncol=5)
m[grep("Laufen", d), 1] <- 1
m[grep("Rennen", d), 2] <- 1
m[grep("Essen", d), 3] <- 1
m[grep("Entspannen", d), 4] <- 1
m[grep("Radfahren", d), 5] <- 1
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
-
- Beiträge: 3
- Registriert: Di Mai 08, 2018 9:51 pm
Re: Neue Variable aus alter erstellen mit IF-Bedingung
Hi Bernhard,
super, das hat geholfen!
Vielen Dank!
super, das hat geholfen!
Vielen Dank!
Re: Neue Variable aus alter erstellen mit IF-Bedingung
Gestern war ich spontan der Meinung, es müsste schön mit "outer" gehen!
Ich hab's allerdings nicht hinbekommen !
Deshalb hier eine alternative Lösung, deren Vorteil man vielleicht erst bei (ein wenig) größeren Datenmengen sieht:
Ich hab's allerdings nicht hinbekommen !
Deshalb hier eine alternative Lösung, deren Vorteil man vielleicht erst bei (ein wenig) größeren Datenmengen sieht:
Code: Alles auswählen
a <- c("Laufen, Rennen, Essen", "Laufen, Essen", "Rennen, Essen, Entspannen")
b <- unique(trimws(unlist(strsplit(a, split=",")))) # zieht die vorkommenden Wörter aus den Phrasenblöcken
Ergebnis <- apply(matrix(b), 1, function(x) grepl(x,a))
dimnames(Ergebnis) <- list(paste("Block", 1:length(a)), b)
Ergebnis
Re: Neue Variable aus alter erstellen mit IF-Bedingung
Das automatische Erfassen der vorkommenden Wörter merkt man bestimmt schon bei kleinen Datenmengen und es verringert die Gefahr von kleinen Flüchtigkeitsfehlern im Code enorm - nur in der Kategorie "Anfängerfreundlichkeit" darf ich mir dann vielleicht doch noch ein kleines Pünktchen gutschreiben ?
LG
Bernhard
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: Neue Variable aus alter erstellen mit IF-Bedingung
Den Ehrenpunkt sollst Du gerne haben !
Aber die "Hauptsache es läuft"-Anfänger hatte ich gar nicht im Visier...
Aber die "Hauptsache es läuft"-Anfänger hatte ich gar nicht im Visier...