2017-04-09 6 views
-2

Ich versuche, eine Konstante zu einer Variablen basierend auf einem Wert einer anderen Variablen hinzuzufügen. Mit anderen Worten, ich habe zwei Variablen (Krebs, PSA). Krebs 1, 0 (was ja nein ist) Wenn der Patient Krebs hat, möchte ich 2.0 zu einer anderen Variablen "psa" hinzufügen, die kontinuierlich ist. Wenn der Patient keinen Krebs hat, möchte ich seinen psa-Variablenwert überspringen und zum nächsten Fall übergehen. Ich denke, dass dies ein, wenn oder ifelse ist, aber ich bin nicht sicher,Einfache R wenn oder ifelse?

Meine beste Vermutung bisher: ifelse(cancer=1,(psa1=psa1+2),(psa1=psa1*1))

+1

hi! Willkommen bei stackoverflow, bitte schauen Sie sich an, wie Sie ein großartiges reproduzierbares Beispiel erstellen können, um einige Ideen zu erhalten, wie Sie Ihren Beitrag verbessern können: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible - Beispiel. Es ist auch ein bisschen unklar, was genau Sie bekommen und was Sie versucht haben, es zu korrigieren. Ihre Aussage hat ein paar Syntaxfehler: Zuerst prüfen Sie eine Gleichheit mit Krebs, also sollte es "Krebs == 1" sein. 2. wenn Ihr Zuweisungsoperator '=' an der falschen Stelle ist. dies (wenn du dplyr verwendest) wird funktionieren muate (psa1 = ifelse (cancer == 1, psa1 + 2, psa1) ' – bjoseph

+0

ein einfacher' psa <- psa + 2 * cancer' sollte es tun – dww

Antwort

1

Ohne Ihre Daten ihnen ein wenig schwer zu sagen, zu sehen, was Sie wollen, aber hier ist ein kleines Beispiel mit an ifelse:

R> sample_Data <- data.frame(cancer = sample(0:1, replace = T, 10), psa = sample(1:10)) 
R> sample_Data$psa1 <- ifelse(sample_Data$cancer == 1, sample_Data$psa + 2, sample_Data$psa * 1) 
R> sample_Data 
    cancer psa psa1 
1  0 5 5 
2  0 8 8 
3  1 2 4 
4  0 10 10 
5  1 1 3 
6  1 3 5 
7  0 9 9 
8  1 6 8 
9  1 7 9 
10  0 4 4 
+0

auch 'mit (sample_Data, psa + 2 * (cancer == 1)) ' – user20650

+0

Vielen Dank ... das scheint großartig zu funktionieren ... – Tom

Verwandte Themen