Seite 1 von 1

String Variable umwandeln

Verfasst: So Jan 14, 2018 4:39 pm
von Anna.R
Hallo,
ich habe Probleme dabei bestimmte Variablen umzuwandeln. Es sind zwei String Variablen die in numerische umgewandelt werden sollen. Schwierigkeit für mich: wenn in den Variablen Text enthalten ist (d.h. egal was der Proband eingegeben hat) soll eine 1 eingetragen werden, bei den anderen Personen soll das NA stehen bleiben. Kann mir jemand helfen??
LG Anna

Nachtrag: Es handelt sich um zwei Variablen Smoke_1 und Smoke_2 (Fragen nach Tabakkonsum), die mit Ja oder Nein beantwortet werden konnten. Bei Nein steht in den Daten NA, und bei JA steht ein Text (da der Proband zuätzlich eine Aussage über seinen Konsum machen konnte). Der Inhalt des Textes ist für meine aktuelle Auswertung nicht wichtig, es soll für jede Antwort mit Ja (also jeder Fall indem ein Text enthalten ist) eine 1 eingetragen werden, da ich daraus später einen Punktescore berechnen möchte.
D.h. alle NA´s sollen bleiben und alle Fälle mit Text sollen in eine 1 umgewandelt werden. Ich hoffe das ist verständlich. Vielen Dank schon mal.

Re: String Variable umwandeln

Verfasst: Mo Jan 15, 2018 8:18 am
von jogo
Hallo Anna,

willkommen im Forum!
Bitte lies viewtopic.php?f=20&t=11 und liefere uns Daten, an denen wir das Problem nachvollziehen können.

Gruß, Jörg

Re: String Variable umwandeln

Verfasst: Mo Jan 15, 2018 12:35 pm
von Curnen
Ich glaube, ich hab verstanden, um was es dir geht. Im Prinzip sind nur numerische Angaben erlaubt, wenn ein Proband aber Text eingegeben hat, dann soll als Standardwert 1 zurückgegeben werden, oder?

Code: Alles auswählen

antworten <- c("4","2","5","Text","202.3",NA,"Nochmal Text","3.4")
#class(antworten)
#[1] "character"
antworten_numeric <- as.numeric(antworten)
# Warning message:
# NAs introduced by coercion 

# Wir testen nun, welche NAs aus dem Numeric schon im ursprünglichen Vektor NAs gewesen sind. Alle anderen werden mit 1 ersetzt.
antworten_numeric[is.na(antworten_numeric)] <- ifelse(!is.na(antworten[is.na(antworten_numeric)]),1,NA)
Nachtrag: Wenn ich so drüber nachdenke - es macht eigentlich mehr Sinn den Text vor der Umwandlung zu ersetzen...

Code: Alles auswählen

antworten <- c("4","2","5","Text","202.3",NA,"Nochmal Text","3.4")
antworten[grep("[[:alpha:]]",antworten)] <- 1
antworten_numeric <- as.numeric(antworten)

Re: String Variable umwandeln

Verfasst: Di Jan 16, 2018 11:57 am
von Anna.R
Danke für die Hilfe.
Es hat geklappt mit dem Code aus dem Nachtrag. DANKE!!