2017-04-09 150 views
-2

我想基於另一個變量的值向變量添加常量。換句話說,我有兩個變量(Cancer,psa)。癌症1,0(如果患者患有癌症,則爲「否」)我想將2.0添加到連續的另一個變量「psa」中。如果病人沒有癌症,我想跳過他們的psa變量值並轉到下一個病例。我認爲這是一個,如果還是ifelse,但我不知道簡單的R if或ifelse?

我最好的猜測至今: ifelse(cancer=1,(psa1=psa1+2),(psa1=psa1*1))

+1

hi!歡迎來到stackoverflow,請看看如何使一個偉大的重現性的例子,以獲得一些想法如何改善您的帖子:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible例如。它也有點不清楚你得到了什麼錯誤,以及你試圖糾正錯誤。你的陳述有一些語法錯誤:首先你要檢查與癌症的平等,所以它應該是「癌症== 1」。第二,如果你的賦值運算符'='在錯誤的地方。這個(如果你使用dplyr的話)將工作mutate(psa1 = ifelse(cancer == 1,psa1 + 2,psa1)' – bjoseph

+0

一個簡單的'psa < - psa + 2 * cancer'應該這樣做 – dww

回答

1

沒有看到你的數據了一點很難說你想要什麼,但在這裏是用一個簡單的例子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

也'with (sample_Data,psa + 2 *(cancer == 1))' – user20650

+0

非常感謝你......這似乎很好... – Tom