如果我想编写数学函数:
f(x)
= 12 for x>1
= x^2 otherwise
如果我使用
mathfn<-function(x)
{
if(x>1)
{
return(12)
}
else
{
return(x^2)
}
}
然后我认为这不是编码它的好方法,因为它对于x是矢量的调用不是通用的。例如plot()或integrate()失败。
plot(mathfn, 0,12)
Warning message:
In if (x > 1) { :
the condition has length > 1 and only the first element will be used
什么是一个更健壮,矢量化的习惯用法来编码,以便x可以是标量或向量?
答案 0 :(得分:4)
这样的事情会起作用吗?
mathfn <- function(x) ifelse(x > 1, 12, x^2)