问题
我需要,其通过对于不同的范围(例如,我测量电流和仪表计算测量的不确定度的函数,如果它是在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