Wenn Spalte A "Wort" enthält, dann Spalte B "Ja"

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

Moderatoren: EDi, jogo

Antworten
Drako
Beiträge: 11
Registriert: Do Dez 27, 2018 4:39 pm

Wenn Spalte A "Wort" enthält, dann Spalte B "Ja"

Beitrag von Drako »

Hallo zusammen,
leider finde ich in der Suche nichts, weiß aber auch nicht so recht, nach welchen Begriffen ich suchen soll. Ich habe eine Spalte in meiner Tabelle, welche die Ergebnisse einer einzigen Frage mit 4 Checkboxen enthält. Die Spalte sieht so aus:

Code: Alles auswählen

Welche Module nutzen Sie?
Lernmodul;Simulator;Selbsttest (Kenntnisnachweis)
Lernmodul;Simulator
Lernmodul;Simulator;Selbsttest (Kenntnisnachweis)
Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module
Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module
Lernmodul;Simulator;Do It Yourself-Module
Lernmodul;Simulator;Selbsttest (Kenntnisnachweis)
Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module
Lernmodul;Simulator
Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module
Lernmodul;Simulator;Selbsttest (Kenntnisnachweis)
Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module
Um damit weiter arbeiten zu können, würde ich gerne 4 neue Spalten erzeugen: Eine Spalte pro Antwortmöglichkeit (Lernmodul, Simulator, etc.). In der neuen Spalte "Lernmodul" soll dann in jeder Zeile nur dann ein "Ja" stehen, wenn in der ursprünglichen Spalte auch das Wort "Lernmodul" vorkommt. Ansonsten soll dort "Nein" stehen.
Das Ergebnis soll dann also so wie im Beispiel im Anhang aussehen (ok, da habe ich "Ja" noch mit 1 kodiert...).
Habt ihr eine Idee oder könnt mir sagen, wonach in suchen muss?

Vielen Dank im Voraus!
Dateianhänge
R_beispiel.xlsx
(8.84 KiB) 58-mal heruntergeladen
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Wenn Spalte A "Wort" enthält, dann Spalte B "Ja"

Beitrag von EDi »

vermutlich am einfachsten: 4x grepl anwenden.

Aber es gibt da ein Sprichwort: "Regex: Jetzt hast du 2 Probleme" :lol:
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
Bild.
bigben
Beiträge: 2788
Registriert: Mi Okt 12, 2016 9:09 am

Re: Wenn Spalte A "Wort" enthält, dann Spalte B "Ja"

Beitrag von bigben »

Nicht alle Probleme mit Regex fallen sofort auf und im Beispiel ist erstmal immer alles einfach :lol:

Code: Alles auswählen

daten <- data.frame(modul = c("Lernmodul;Simulator;Selbsttest (Kenntnisnachweis)", "Lernmodul;Simulator", 
                              "Lernmodul;Simulator;Selbsttest (Kenntnisnachweis)", "Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module", 
                              "Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module", 
                              "Lernmodul;Simulator;Do It Yourself-Module", "Lernmodul;Simulator;Selbsttest (Kenntnisnachweis)", 
                              "Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module", 
                              "Lernmodul;Simulator", "Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module", 
                              "Lernmodul;Simulator;Selbsttest (Kenntnisnachweis)", "Lernmodul;Simulator;Selbsttest (Kenntnisnachweis);Do It Yourself-Module"
))

daten$Selbsttest <- 0
daten$Selbsttest[grep("Selbsttest", daten$modul)] <- 1

daten$DIY <- 0
daten$DIY[grep("Yourself", daten$modul)] <- 1

print(daten)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Drako
Beiträge: 11
Registriert: Do Dez 27, 2018 4:39 pm

Re: Wenn Spalte A "Wort" enthält, dann Spalte B "Ja"

Beitrag von Drako »

Hallo ihr beiden,
super, vielen Dank. Das hat hervorragend funktioniert! Die meisten anderen Sachen kann ich mir ergooglen, aber dabei war's echt schwierig!
Nochmals tausend Dank! :)
Antworten