問題
我需要,其通過對於不同的範圍(例如,我測量電流和儀表計算測量的不確定度的函數,如果它是在2毫安的不確定性的範圍是測量值的0.1 % + 3 dig
)。如果該函數能夠獲取矢量並返回矢量而不是數字,則更好。替代嵌套ifelse()中的R語句
我寫了很多if
的函數,但它返回警告the condition has length > 1 and only the first element will be used
。經過一段時間的研究,我發現R中的if
s被設計用於處理表達式,該表達式可以計算出單個布爾值,而ifelse
可以處理向量。
但由於有大約10個鏈else if
s同樣的事情與ifelse
s會相當醜陋。
例
與if
S:
S.I = function(I) {
if(I<=(2*10^(-6))){
0.1*I/100 + 3*10^(-9)
} else if(I<=(20*10^(-6))) {
...
}
...
}
與ifelse
小號
S.I = function(I) {
ifelse(I<=(2*10^(-6)),0.1*I/100 + 3*10^(-9),ifelse(I<=(2*10^(-6)),...,ifelse(...)))
}
問題
有沒有在這種情況下ifelse
秒的方法嗎?
你能提供一個可重複的例子嗎? – Khashaa 2015-02-24 15:48:40
您不必在同一行上完成'ifelse'。 – James 2015-02-24 15:52:17
儘管不能像當前編寫的那樣將向量投入到「SI」中,但如果更容易,可以繼續使用if-else範例,然後使用可將向量傳遞給的向量化(SI)' – rawr 2015-02-24 15:53:37