我想基於另一個變量的值向變量添加常量。換句話說,我有兩個變量(Cancer,psa)。癌症1,0(如果患者患有癌症,則爲「否」)我想將2.0添加到連續的另一個變量「psa」中。如果病人沒有癌症,我想跳過他們的psa變量值並轉到下一個病例。我認爲這是一個,如果還是ifelse,但我不知道簡單的R if或ifelse?
我最好的猜測至今: ifelse(cancer=1,(psa1=psa1+2),(psa1=psa1*1))
我想基於另一個變量的值向變量添加常量。換句話說,我有兩個變量(Cancer,psa)。癌症1,0(如果患者患有癌症,則爲「否」)我想將2.0添加到連續的另一個變量「psa」中。如果病人沒有癌症,我想跳過他們的psa變量值並轉到下一個病例。我認爲這是一個,如果還是ifelse,但我不知道簡單的R if或ifelse?
我最好的猜測至今: ifelse(cancer=1,(psa1=psa1+2),(psa1=psa1*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
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
一個簡單的'psa < - psa + 2 * cancer'應該這樣做 – dww