String Variable umwandeln

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

Moderatoren: EDi, jogo

Antworten
Anna.R

String Variable umwandeln

Beitrag 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.
Zuletzt geändert von Anna.R am Mo Jan 15, 2018 7:55 pm, insgesamt 1-mal geändert.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: String Variable umwandeln

Beitrag 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
Curnen
Beiträge: 27
Registriert: Fr Nov 18, 2016 3:45 pm

Re: String Variable umwandeln

Beitrag 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)
Anna.R

Re: String Variable umwandeln

Beitrag von Anna.R »

Danke für die Hilfe.
Es hat geklappt mit dem Code aus dem Nachtrag. DANKE!!
Antworten