Ich habe einen Datenrahmen datwe
mit 37 Spalten. Ich möchte die ganzzahligen Werte (1,2,99) in den Spalten 23 bis 35 in Zeichenwerte umwandeln ('Ja', 'Nein', 'NA').Apply CASE WHEN in sqldf Anweisung für die Manipulation mehrerer Spalten
datwe$COL23 <- sqldf("SELECT CASE COL23 WHEN 1 THEN 'Yes'
WHEN 2 THEN 'No'
WHEN 99 THEN 'NA'
ELSE 'Name ittt'
END as newCol
FROM datwe")$newCol
ich gewesen, die oben sqldf
-Anweisungen jede Spalte separat zu konvertieren. Ich habe mich gefragt, ob es eine andere schlaue Art gibt, dies zu tun, vielleicht Funktionen anzuwenden?
Wenn Sie irgendwelche reproduzierbaren Daten für den Aufbau von Datenrahmen datwe
benötigen, werde ich es hier hinzufügen. Vielen Dank.
Edit: Beispiel datwe
set.seed(12)
data.frame(replicate(37,sample(c(1,2,99),10,rep=TRUE)))
In SQL-Anweisung haben Sie 2 When - '... WANN WENN 1 ...'. Warum nicht einfach "col23 - col35" extrahieren und dann in ein Zeichen in R umwandeln? – zx8754
@ zx8754 Danke dafür, ich habe den Beitrag bearbeitet. Ich nehme an, dass das 'as.character()' die Integer-Werte in Zeichenwerte umwandelt. Wohin soll ich die neuen Werte als Argumente übergeben? – Prradep