我正在研究 R 中的這個虛擬問題:
Patient_Being_Tested_Disease = 0
Method_1 = 0.1
Method_4 = 0.4
Method_5 = 0.5
我正在嘗試撰寫以下 IF 條件
winner = ifelse( Patient_Being_Tested_Disease == 0, min(Method_1, Method_4, Method_5), max(Method_1, Method_4, Method_5))
> winner
[1] 0.1
這行得通-但我不想回傳一個數字,而是想回傳與回傳的數字相對應的“方法”。
例如,我希望 IF 陳述句回傳 "Method_1" 而不是 0.1 。
有沒有辦法做到這一點?
uj5u.com熱心網友回復:
使用陳述句執行所需操作的一種簡單方法ifelse是將值合并到命名字符向量,然后重構陳述句。
Patient_Being_Tested_Disease = 0
methods <- c(Method_1 = 0.1,
Method_2 = 0.4,
Method_5 = 0.5)
ifelse(Patient_Being_Tested_Disease == 0,
names(methods)[which.min(methods)],
names(methods)[which.max(methods)])
輸出:
[1] "Method_1"
這樣做的是,現在,which.min/max函式以向量的名稱而不是值本身為目標。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/515290.html
標籤:r
